以太坊跟比特币网络相比复杂了太多,写下一点自己粗浅的理解与记录学习,一直更新
总体来讲,以太坊的最大创新在于账户系统和智能合约的创造。这使得以太坊成为了更“智能”的状态机,即除账户交易余额外可以由合约与EVM创造属于合约的“状态”:token,nft等,并使得以以太坊为“数据库”的应用开发即Dapp成为可能。节点在本地运行EVM并维护区块状态,并通过某种分布式共识协议达到区块链网络的一致性。
账户
外部账户:可以发起交易,调用智能合约,由公私钥控制
合约账户:不可以主动发起交易,被调用,有代码段,被创建后存在于链上等待调用。
智能合约
1.编写智能合约代码,并编译成字节码。
2.部署智能合约。过程是向“0”地址发送一笔带有智能合约字节码数据的交易,这个交易会生成该智能合约的地址,并将字节码存储在该地址下的状态树中。
3.执行智能合约(调用智能合约函数)。向智能合约地址发送一个交易,该交易携带被调用的智能合约函数信息及调用参数,携带的信息遵循ABI编码协议。
4.智能合约地址收到这样的调用合约函数的交易,首先会解码数据,根据结果查找到对应函数的入口,再传入参数执行该函数。
5.执行函数的过程是状态转换的过程,执行完成后会扣除调用者相应的Gas花费。
6.状态转换的过程会全网同步并被再次执行验证,确保执行结果一致,这样通过验证后的交易会记录到区块中,同时更新状态数据。
EVM 等我把nand2tris做完认真读一下源码
DAPP
数据结构
区块结构