#blockchain #solidity
#блокчейн #солидность
Вопрос:
Мы создаем собственный блокчейн для школьного проекта. Моя часть заключается в реализации интеллектуальных контрактов Solidity на блокчейне. Идея заключалась в том, чтобы поместить движок интеллектуальных контрактов Solidity на узлы валидатора, но после нескольких недель поиска и пробования разных движков я не могу найти правильный. Есть ли у вас какие-либо рекомендации по движку интеллектуальных контрактов Solidity? Спасибо.
Комментарии:
1. что вы подразумеваете под этим механизмом интеллектуальных контрактов Solidity?
2. Что-то, что может читать и выполнять интеллектуальные контракты, написанные на языке Solidity
3. И что вы подразумеваете под узлом проверки?
4. Узлы, которые проверяют транзакции.
5. Обратите внимание, что контракты компилируются ИЗ solidity В любую цель, поэтому материал, который «достигает», например, EVM в блокчейне ethereum, — это не простой исходный код solidity, а ассемблерные инструкции для виртуальной машины (коды операций). Он же «EVM не понимает solidity». (примечание: кстати, интересная школа)
Ответ №1:
Смарт-контракты выполняются на виртуальной машине EVM Ethereum. EVM полностью изолирован и не имеет контакта с узлом. Процесс проверки транзакции выполняется на уровне узла. Итак, то, что вы ищете, — это EVM, который выполняет эти действия.
Теперь, если вы хотите внедрить блокчейн, одним из самых простых способов является использование TestRpc, который создаст блокчейн в памяти, где вы можете развернуть транзакцию и выполнить транзакцию. Проверка транзакции выполняется внутри блокчейна.
Ответ №2:
Вы можете использовать фабричный шаблон и создать свой собственный «движок» со встроенным новым.
contract RBACFactory{
address[] public deployedEntities;
function createEntity(string memory name, string memory mission, string memory tokenName,
string memory tokenSymbol, uint rate) public {
address newEntity = address(new Entity(name, mission, msg.sender, tokenName, tokenSymbol, rate));
deployedEntities.push(address(newEntity));
}
function getDeployedEntities() public view returns(address[] memory) {
return deployedEntities;
}
}
Ответ №3:
Я делаю то же самое и использую truffle framework и локальный блокчейн ganache. Очень просто развернуть смарт-контракт и взаимодействовать с ним.
Смотрите: набор трюфелей