900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 以太坊知识教程------智能合约(1)基本概念

以太坊知识教程------智能合约(1)基本概念

时间:2021-07-02 05:12:46

相关推荐

以太坊知识教程------智能合约(1)基本概念

1.智能合约的定义

智能合约是一段 EVM 可执行的代码智能合约的信息都被附在“交易”中,以交易的形式发布到网络中合约发布之后用户会得到一个合约地址,相当于合约对象的指针当网络中的用户调用这个智能合约时,可以直接给这个合约地址发送“交易”,并声明本次调用的函数名称和参数,使得智能合约执行对应的逻辑 。无论发布还是调用智能合约,因此以太坊网络中的节点接收到这些交易后,其中的 EVM 会执行对应的合约代码 ,合约的内容和状态也就实现了全网一致

2. 智能合约的特点

创建合约交易的 Payload 被当作 EVM 宇节码执行,输出作为合约代码被永久存储。这意味着为了创建一个合约,不需要向合约发送真正的合约代码,而是发送能够返回真正代码的代码 。一个合约也可以通过一个特殊的指令来创建其他合约(不是简单地向零地址发起调用 )。创建合约的调用跟普通的消息调用的区别在于, Payload 数据执行的结果被存储为合约代码,调用者(创建者)在栈上可以得到新合约的地址。

3. 智能合约的过程

3.1. 合约原始代码

3.2. 合约的创建

Bob(用户A) 将一个包含智能合约信息的交易发送到以太坊网络

3.3 产生合约地址

节点的 EVM 执行这个交易并生成对应的合约实例, 得到合约地址"0x6f8ae93 ”发送给用户A.

智能合约账户的地址是由发送者的地址( address )和交易随机数( nonce )作为输入,通过加密算法生成的、交易确认后智能合约的地址返回给发送者。

3.4. 合约的调用

a. Bob 以交易的形式在“ To”字段填上 SimpleStorage 合约的地址, 在“Data ” 字段填上调用的方法( set)和参数(“Hello ”)

b. 节点收到这条交易后,当 Alice 查看这个合约的变量时,就会发现这个合约中 storedData 变量的值变成了“ Hello"。

c. 所有节点都如alice一样通过 EVM 执行对应的操作,并通过共识机制实现以太坊网络上合约状态的改变 ,每个节点都可以在本地保存一份完整的数据

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。