Etai Fang Интеллектуальная разработка контрактов

блокчейн

задний план

После изучения двух предыдущих глав я считаю, что у каждого есть определенное представление о блокчейне.Тогда какие изменения может принести технология блокчейна в Интернет?

Характеристики самого блокчейна - децентрализация, и его нельзя подделать. Благодаря этой характеристике стало легко достичь отслеживаемости товаров, счетов-фактур в блокчейне, электронной валюты, страховых требований, совместимости игр и т. Д.

Взяв в качестве примера 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