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] 序列化:把对象转化为字节序列的过程。反序列化是它的逆过程。