Сохранение дополнительных данных в транзакции ethereum smartcontract - PullRequest
0 голосов
/ 12 апреля 2019

У меня не так много опыта работы с эфириумом, и эта проблема очень сложна для меня.

У меня есть проект в php laravel, который должен отправлять внутренние монеты проекта пользователю, и в этой транзакции я должен сохранить дополнительные данные о работе пользователя, за которые есть платеж.

Адрес смартконтракта: 0x64be6b77cc723e5518687a04b4e62824e89fd8bb

Сначала я установил geth и синхронизировал ethereum. Затем я импортировал аккаунт (с нулевым балансом).

Затем я начал работать с двумя разными библиотеками php и множеством руководств и примеров, но пока не понимаю, как мне это решить.

С обоими я могу успешно подключиться к локальному экземпляру ethereum (http://127.0.0.1:8545), получить версию протокола, баланс счета и вызвать другие простые методы. Но пока не понимаю, как я могу вызвать контракт с адресом получателя, суммой и дополнительными данными .

Я использую эту библиотеку: digitaldonkey/ethereum-php and sc0vu/web3.php

Ожидаемый результат - транзакция создана, дополнительные данные json сохранены в транзакции, идентификатор транзакции сохранен в mysql.

1 Ответ

0 голосов
/ 12 апреля 2019

Для взаимодействия с блокчейном вы должны создать распределенное приложение. Dapp использует библиотеку Web3 для взаимодействия с блокчейном. Один из подходов к решению вашей проблемы - создать приложение angularJs и использовать библиотеку web3 для взаимодействия со Smart Contract. В зависимости от кода в смарт-контракте вы также можете хранить дополнительные данные в поле события, но они должны быть закодированы в смарт-контракт.

Для выполнения транзакции вы можете использовать плагин MetaMask. Метамаска также позволяет создать нового пользователя в сети ethereum. После входа в Метамаску все транзакции, которые вы выполняете через библиотеку web3, проходят через Метамаску, и вам необходимо подтвердить транзакцию перед выполнением.

Хороший способ начать - детально ознакомиться с фреймворком трюфель , поскольку он упрощает разработку приложений Smart Contract и Distributed. Вы можете загрузить угловой блок и начать разработку распределенного приложения.

...