2019c

以太坊智能合约---工作原理

2019-10-17  本文已影响0人  JC86

一、什么叫智能合约

智能合约其实不是合约也不智能,只是它能跑着区块链上的代码。

二、智能合约语言

我们这里用solidity作为合约开发语言进行讲解

三、智能合约的编译

solidity编译过程

如上图合约文件Helloworld.sol经过编译器编译生成Helloworld.abi和Helloworld.bin文件。

solc helloworld.sol --abi --bin -o ./

四、合约的部署

合约部署流程图

如上图,合约的部署跟发送一笔交易是一样的操作,调用transaction函数,from为发布者的地址,to为0,data为合约的evm操作码。在矿工打包的时候会生成智能合约地址。智能合约地址的生成是由创建者的账号和发送的交易数作为随机数输入,通过Kecca-256加密算法重新创建一个地址作为账号。也就是说最后合约地址对应合约的代码会保存在区块链数据库。调用者只需要有合约地址和abi文件就可以调用合约的代码。

五、合约的调用

合约调用流程图

github地址

参考:
一次搞懂「以太坊智能合约」如何运作
图解以太坊智能合约中的概念
【译】完全理解以太坊智能合约
[以太坊源代码分析] I.区块和交易,合约和虚拟机
EVM 以太坊虚拟机
区块链开发(二)部署和运行第一个以太坊智能合约
以太坊虚拟机(EVM)底层原理及性能缺陷

上一篇 下一篇

猜你喜欢

热点阅读