以太坊架构简析

以太坊架构简析


HTTPClient:支持HTTP协议、实现get、post等HTTP方法。

Whisper协议:DApp间通信的协议,提供低层次API

HTTP/JSON RPC/IPC [1]:实现程序/进程间的通信。外部程序可以通过JSON RPC调用API。

Swarm:一个web应用开发框架,其允许程序分布在多台计算机上,并能够动态分配运算以提升运算效率。

容器:包含程序和程序运行所需的完整环境,相当于轻量虚拟机。可以无视环境难题,被快速部署

P2P网络:对等节点组成的网络,每个节点都同时起到客户端和服务端的作用。

挖矿:节点争夺记账权,并在记账成功后获取代币奖励。

LevelDB:高效的kv(key-value)数据库[2]。

Crypto:加密。以太坊使用SHA3、secp256k1加密算法。

rlp:recursive length prefix,即递归长度前缀。在以太坊中对对象进行序列化[3]和反序列化编码。

校验:包含区块、交易合法性校验,Merkle Patricia Tree校验,交易池校验。

区块链管理:涉及区块的下载、连接、断开、校验、保存

交易池管理:节点将通过验证的交易存在交易池中,准备放在一个挖到的区块里。

EVM:Ethereum Virtual Machine,即以太坊虚拟机。智能合约在EVM之上运行。

智能合约:可以理解为:包含价值且只有在满足一定条件时才会打开的加密箱子。其具有图灵完备性。

web3.js:封装了以太坊JSON RPC API的js库,包含与区块链交互的js对象和函数。有查看网络状态、查询本地账户、查询交易和区块、发送交易、编译/部署合约等的API

交易:一个账户向另一个账户发送被签名的数据包的过程

 

[1] ipc:inter-progress communication,即进程间通信。Ipc包含lpc(local progress call)和rpc(remote procedure call)。可以认为rpc是:把分割的程序通过网络重组。通过网络,像操作本机代码一样调用远程机器上的代码。JSON RPC是以JSON为协议的RPC,传输的内容是JSON本体。

[2] kv数据库中的数据按照kv对进行组织、索引、存储。kv数据库没有固定的数据结构,而SQL数据库的数据一般都具有固定的数据结构。这里的key一般与hash相关,value一般存储rlp编码。

[3] 序列化:把对象转化为字节序列的过程。反序列化是它的逆过程。

上一篇:ionic sqlite的使用


下一篇:以太坊智能合约简介(Solidity)