1.以太坊总体架构
- 以太坊详细架构
- 账户设计
- 外部账户:一般意义上的账户
- 合约账户:它是一种可编程的账户,合约存在以太坊的区块链上,它是代码和数据的集合。合约受代码控制并由外部所有账户激活
- 在以太坊中,区块链被作为一个通用的管理对象状态转换的去中心化平台,账户就是有状态的对象。外部所有账户的状态就是余额,而合约账户的状态可以是余额、代码执行情况,以及合约的存储。以太坊网络的状态就是所有账户的状态,该状态由每个区块的交易来更新,同时需要在全网形成共识。用户和以太坊的交互需要通过对账户的交易来实现。
- 以太坊外部账户由公、私钥对定义。地址是公钥的后20位
- 密钥文件存储在以太坊的数据目录中的keystore目录下面
- 合约账户可以执行图录完备的计算任务,也可以在合约账户之间传递消息,合约编译成以太坊虚拟机字节码,记录在区块链上面 。
- 区块链设计
- 以太坊区块链的每个区块不仅保存着交易清单,还保存着最新的状态。
- 以太坊的状态包含了一个键值表,键是地址(address),值是账户里声明的所有变量,包
- 账户设计