задний план
После изучения двух предыдущих глав я считаю, что у каждого есть определенное представление о блокчейне.Тогда какие изменения может принести технология блокчейна в Интернет?
Характеристики самого блокчейна - децентрализация, и его нельзя подделать. Благодаря этой характеристике стало легко достичь отслеживаемости товаров, счетов-фактур в блокчейне, электронной валюты, страховых требований, совместимости игр и т. Д.
Взяв в качестве примера Mystery Cat, мы кратко представим реализацию приложения Dapp:
cryptokitties: игра по сбору облаков для привлечения кошек, основанная на платформе Ethereum. Пользователи могут выращивать, продавать и разводить котят «электронных домашних животных» в игре.
С коммерческой точки зрения каждая кошка независима и имеет «коллекционную ценность».В игре Mystery Cat Creation Cat наконец-то был продан за 770 000 юаней. Подробности
С технической точки зрения смарт-контракт генерирует «кошачьи» данные, а пользователь покупает эти данные через кошелек и привязывает их. Кошка и кошка B «размножаются» и генерируют кошку C с помощью алгоритма (семь атрибутов кошки, каждый из которых имеет 256 случаев). Все «данные о кошках» и детали транзакций хранятся в блоках Ethereum.
Разработка децентрализованных приложений
Гостевая книга: выгравируйте новые сообщения пользователей, и вы также можете увидеть их соответствующие исторические сообщения, которые будут храниться вечно и не могут быть изменены.
01 Заключить контракт
- pragma solidity ^0.6.8 :версия солидности не выше 0.6.8
- mapping(address=>string) public notes :сопоставление представляет сопоставление, ключ имеет тип address, а значение ключа имеет тип string[]
- event NewNote(address, string note) :После того, как новая заметка успешно добавлена, событие записывается в журнал, и клиент может подписаться на эти события через web3, что можно понимать как обратный вызов на стороне сервера.
- getNotesLen() :Получить общее количество сообщений от пользователя
- modifyNote() :Получить все содержимое сообщения пользователя
02 Напишите взаимодействие Web3.js
Web3: это набор API для связи с узлами Ethereum, который инкапсулирует интерфейс JSON-RPC, предоставляемый узлами, и обеспечивает реализацию на нескольких языках.
Проще говоря, Web3 используется для получения статуса узла, получения информации об учетной записи, вызова контрактов, отслеживания событий контракта и т. д.
Создать экземпляр Web3
Чтобы получить доступ к контракту Ethereum, сначала получите экземпляр Web3, браузер с поддержкой Ethereum (например, Mist или MetaMask) будет иметь доступ к ethereumProvider или web3.currentProvider. Следующее:
После создания экземпляра Web3 мы можем совершать интерфейсные вызовы и взаимодействия.
получить сообщение
Добавить сообщение
контролировать сообщения
Когда мы добавляем сообщение, интерфейс должен отображать сообщение в реальном времени, здесь мы используем js-мониторинг, который соответствует событию ModifyNote в нашем контракте:
03 Составить договор
Выполнить компиляцию трюфеля
04 Развернуть в Ринкеби
Geth: клиент управления блокчейном Ethereum, интегрирующий различные API Ethereum.
конкретное использованиевидетьВыполняем команду для синхронизации Ethereum Rekinby с локальным
Ринкеби: тестовая цепочка Ethereum
Выполняем команду, будет синхронизация с локальным ринкебом:
geth --rinkeby - inally-unlock --syncmode "Fast" --rpc --rpcapi DB, ETH, NET, Web3, Personal --Cache = 1024 --rpcport 8545 --rpcaddr 127.0.0.1 --rpccordomdomain "*"
Блокчейн Ринки показывает:
Завершите настройку в truffle.js
Выполните команду миграции трюфеля, чтобы успешно развернуть смарт-контракт в Ринкеби.
Развертывание Rinkeby, в дополнение к загрузке локального развертывания по полной ссылке, вы также можете использоватьInfuraразвертывать
05 Окончательный эффект
06 Эпилог
Первоначальным намерением автора было использовать Dapp в качестве супергроссбуха и встроить его в APP для лога ядра. Позже я обнаружил, что доступ к этой операции должен осуществляться через MetaMask или браузер Ethereum, что немного разочаровывает~
Тем не менее, у Dapp есть только короткий шестилетний период разработки, и я считаю, что с развитием и ростом Ethereum в будущем его можно будет лучше внедрить на предприятиях.
Эпилог
Изучайте и используйте самые быстрорастущие, Truffle официально предоставляет многошаблон проекта, который имеет большое разнообразие, а также поддерживает фреймворки Vue и React и рекомендуется для углубленной практики.
Из-за новой технологии разработки Dapp, помимо базовых концепций Ethereum, также необходимо освоить Solidity, язык Web3.js и такие инструменты, как MetaMask, Truffle, Geth и Rinkeby, но каждый настраивает свой менталитет. и оберегает от высокомерия и нетерпения, и вы точно сможете насладиться новыми технологиями.
Использованная литература:
Часто задаваемые вопросы о синхронизации данных Ethereumвторой брат
Написание, компиляция, развертывание и вызов контрактов на основе TruffleКрай будущего
Синхронизированный блокчейн в EthereumMahesh Murthy