Движок интеллектуальных контрактов Solidity

#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. Очень просто развернуть смарт-контракт и взаимодействовать с ним.

Смотрите: набор трюфелей