Автор оригинала: Kasper Meilgaard.
Этот учебник в основном связан с личным путешествием в мир DAPP
Если вы не чувствуете себя уверенно в одном из упомянутых предметов и технологий, я предлагаю прочитать документы/после учебников/смотреть видео в прилагаемом URL (любые предложения для лучших ресурсов, чем прилагаемый URL-адрес!).
Этот учебник будет разбит на 4 шага и оставляет вас с DAPP и инфраструктурой для улучшения и обновления вашего DAPP. Я выхожу из шага развертывания чего-либо на производстве Blockchain, потому что мой опыт слишком мало, чтобы понять возможные последствия развертывания чего-либо вообще на блокчане производства Ethereum.
Быстрое примечание: этот учебник указан для OSX. Пожалуйста, дайте мне знать в
Если у вас есть какие-либо замечания, обратная связь или вопросы, не стесняйтесь оставить комментарий или свяжитесь со мной. Счастливое здание!
Часть 1: Настройка среды разработки
В первую очередь нам нужен стабильный и хорошо функционирующий местную среду развития. Чтобы начать это выключить, мы установим кучу инструментов, таких как NPM и Truffle, и мы попробуем разработку устойчивого и хорошо функционирования
Вы можете пропустить в зависимости от того, какой абзац вы уже закончили, но я предлагаю читать их все равно (и в процессе, помогите мне улучшить их). Установка узла и NPM
Если вы не установили узла или NPM начните с установки их. Мы будем использовать домашний интервайл для установки и управления узлом и NPM, поэтому мы начнем с установки этого:
Download homebrew: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Обновите Brew и добавьте в путь:
brew update export PATH="/usr/local/bin:$PATH"
Установите узел и NPM с помощью Brew:
brew install node
Установка Truffle и Ethereumjs-TestRPC
К настоящему времени мы можем установить Truffle и Ethereumjs-TestRPC, используя NPM:
npm install -g truffle npm install -g ethereumjs-testrpc
Настройка нового репозитория, содержащего Truffle-React
Во-первых, создайте и CD в каталог, где вы хотите разработать свой новый проект.
mkdir hitchhikers-dapp
Затем инициализируйте репозиторий Git по вашему выбору, и теперь запустите:
truffle unbox react
Для Unebbe Trufle-React Box, и мы готовы проверить, если наша настройка способна запустить.
Запуск среды разработки
Чтобы запустить среду разработки, сначала нам придется запустить TestRPC в отдельном терминале для нашего DAPP, чтобы иметь возможность подключаться.
testrpc.
Теперь, когда наш TestRPC поднимается и работает, мы можем компилировать и перенести наши контракты трюферов и начать DAPP.
truffle compile truffle migrate npm start
Обратите внимание, что последняя команда дает нам URL-адрес http://localhost: 3000, чтобы проверить, работает ли наш dapp. Пожалуйста, убедитесь, что у вас есть метамаска, отключенная, когда вы открываете браузер, потому что он введет свой собственный крюк Web3.
Если все идет хорошо, ваш браузер должен открыться на localhost: 3000 и этот интерфейс
Быстрый обзор того, что мы получили до сих пор
В первую очередь у нас есть два контракта в каталоге/контракта. Избиение сердца нашего DAPP. Существует договор миграции и контракт, называемый Simplestorage.sol.
Все этот контракт делает управление состоянием одного целого числа без знака
pragma solidity ^0.4.2; contract SimpleStorage { uint storedData; function set(uint x) { storedData = x; } function get() constant returns (uint) { return storedData; } }
Существует две функции, работающие над UINT StoredData, и этот договор описывает важное различие между возвратом состояния и манипулирующим состоянием. EVM построен таким образом, что только манипулирование государственным затратным газом, а также получить текущее состояние бесплатно. Чтобы указать, что функция не корректируется
function get() constant
Обратите внимание, что этот контракт не устанавливает какие-либо ограничения на то, кто может настроить состояние StoredData или на значение самого StoredData. Так что единственное, что мы действительно должны проверить, это если мы сможем отрегулировать состояние StoredData, и если мы сможем прочитать его. Который приводит нас к тестам! Запуск тестов
Чтобы убедиться, что вы не тратите слишком много времени, перезаписывая компоненты пользовательского интерфейса, я настоятельно рекомендую сначала начать с тестирования ваших интеллектуальных контрактов, а затем написать тесты Web3 и только тогда начинаю с подключения ваших контрактов на пользовательский интерфейс.
Пожалуйста, не пропустите этот параграфы с помощью интерфейса тестирования, а трюфельная реакция уже написала наш первый тестовый контракт, используя этот интерфейс для нас. Договор называется TestSimplestorage.sol и находится в/тест.
pragma solidity ^0.4.2; import "truffle/Assert.sol"; import "truffle/DeployedAddresses.sol"; import "../contracts/SimpleStorage.sol"; contract TestSimpleStorage { function testItStoresAValue() { SimpleStorage simpleStorage = SimpleStorage( DeployedAddresses.SimpleStorage()); simpleStorage.set(89); uint expected = 89; Assert.equal(simpleStorage.get(), expected, "It should store the value 89."); } }
Во-первых, он импортирует договор Assert и контракт по развертыванию, поставляемому с трюфелем для предоставления метода для тестирования функциональности развернутого договора.
Во-вторых, он импортирует простое хранение и тестирует государственное управление договором, установив состояние до 89, а затем проверяя, возвращает ли он 89. Это охватывает все функциональные возможности, которые нам нужны в договоре.
Вы также можете написать текст в JavaScript (как в/tests/simplestorage.js), а мой
// Runs Truffle's test suite for smart contract tests. truffle test
К настоящему времени мы настроили, исследовали и проверили нашу местную среду развития, и я надеюсь, что вы все еще там, чтобы пойти на веселую часть. Написание и тестирование наших собственных договоров!
Что дальше?!
В следующие пару дней я напишу последующие части этого учебника и выпустить дополнительные репозитории с примером кода, чтобы добраться до полноценного DAPP, работающего на публичном тесте.
Часть 2: Написание и тестирование ваших контрактов В этой части мы обсудим, как писать контракты и тщательно проверить их, прежде чем подключиться к пользовательскому интерфейсу, используя Web3. Часть 3: Создание пользовательского интерфейса В этой части у нас будут наши контракты, и мы готовы подключить их к интерфейсу, который позволяет людям использовать их. Часть 4: Развертывание и миграции Последнее, но не менее важное: у вас все работает, и вы готовы развернуть.
Больше будет следовать в ближайшее время!