笔记学习
更新记录:
一、基本概念 .
1、账户
以太坊分外部账户和合约账户两种
外部账户特点:
有以太币余额
可以发送交易(以太币交易或引发合约代码)
由私钥控制
没有相关代码
合约账户特点:
有以太币余额
有相关代码
代码执行由从其他合约接收的交易或消息(调用)触发
执行的时候,执行任意复杂操作,它自己都永久存储,可以调用其他合约
以太坊区块链上的所有行为都由“外部账户”引发的交易调动,每次合约账户接收到交易时,合约代码会按照输入的参数指示执行,作为交易的一部分发送。合约代码由参与到网络的每个节点上的以太坊虚拟机执行,作为验证新区块的一部分。
2、交易
交易指待签署的数据包,而数据包里存着从外部账户发送到区块链上另一 账号的消息。
交易包括:
消息接收人
一个签名,用于确认发送方身份
VALUE 域,从发送方向接收方转移的wei的数量
可选数据域,包括发送到合约的消息
StartGas,代表交易执行允许采取的运算步骤的最大数量
GaspRice,代表发送人愿意支付的Gas费
3、消息
一条消息本质上就像一笔交易,只不过是由合约创造的,当正在执行代码的合约,执行Call 或者 DeleGateCall操作码时,消息就产生了。
消息包括:
发送方
接收方
VALUE域,和要发送到合约地址的消息的一起转移的wei数量
发送到合约的实际数据
StartGas,限制了消息可以触发的代码执行的gas最大值
4、智能合约
定义:一段部署在evm虚拟机中的代码,无法自动执行,需要人为的触发才能执行,每执行一次需要发起这次执行的账户扣除对应的gas作为手续费。
一个智能合约是一套以“数字形式”定义的“承诺(promises)”.
承诺:指合约参与方同意的(经常是相互的)权利和义务,这些承诺定义了合约的本质和目的。比如,合约规定销售是卖家承诺发送货物,买家承诺支付合理的货款。
数字形式:数字形式指合约部得不写入计算机可读的代码中。因为只要参与方达成协议,智能合约建立的权利和义务,是由一台计算机或者计算机网络执行的。
达成协议
如何判断智能合约的参与方在什么时候达成协议?
取决于特定的智能合约实施,当参与方通过在合约宿主平台上安装合约,致力于合约的执行时,合约就被发现了。
合约执行
“执行”的真正意思也依赖于实施,执行意味着通过技术手段实施。
智能合约与平时的代码其实没有什么区别,只是运行于一个以太坊这样的分布式平台上而已。这个运行的平台,赋予了这些代码不可变,确定性,分布式和自校验状态等特点。代码运行过程中状态的存储,是不可变的。每一个人,都可以开一个自己的节点,重放整个区块链,将会获得同样的结果(能控制所有节点都达到一致状态,就是所谓的共识)
5、区块链底层架构
区块链基础架构分为6层,包括数据层、网络层、共识层、激励层、合约层、应用层。每层分别完成一项核心功能,各层之间互相配合,实现一个去中心化的信任机制。
二、etherscan 提供的功能
1、交易:
以太坊区块链浏览器提供了三种交易查询:
已签名的交易(Txns)
挂起交易(Pending Txns)
合约内部交易(Contract Internal Txns)
已签名的交易包括交易成功的和交易失败的
挂起交易指等待区块确认的交易
合约内部交易:指合约地址转出到交易地址
合约内部交易示意图:
已签名交易账户功能及注释: