如何发送一笔交易到链上,交易在链上又经历了哪些处理流程,直到达成全网共识。
一般区块链底层项目都会给出交互协议的说明文档,通常实现包括JsonRPC、gRPC、Restful等不同类型的交互协议。
不同项目的交互接口会有所不同,但大都会包含
- 发送交易、
- 部署合约、
- 调用合约、
- 查看区块、
- 查看交易以及回执、
- 查看区块链状态
等接口。
不同项目的数据编码也会有所不同,有些采用Json,有些采用protobuf等。
以FISCO BCOS为例,通过多个模块相互协作,完成交易整个生命周期的处理:
网络模块的Host线程将根据配置列表,主动与其他节点建立连接,并且持续监听来自其他节点的连接;
Sync线程开始相互发送区块高度,发现高度低于其他节点则开启下载逻辑;
RPC与Channel线程等待客户端发送请求,将收到的交易塞入txpool;
Sealer线程从txpool获取交易,
Consensus线程则开始处理共识消息包。