FISCO BCOS源码(3)线程交互和交易的生命周期
如何发送一笔交易到链上,交易在链上又经历了哪些处理流程,直到达成全网共识。
一般区块链底层项目都会给出交互协议的说明文档,通常实现包括JsonRPC、gRPC、Restful等不同类型的交互协议。
不同项目的交互接口会有所不同,但大都会包含
- 发送交易、
- 部署合约、
- 调用合约、
- 查看区块、
- 查看交易以及回执、
- 查看区块链状态
等接口。
不同项目的数据编码也会有所不同,有些采用Json,有些采用protobuf等。
以FISCO BCOS为例,通过多个模块相互协作,完成交易整个生命周期的处理:
网络模块的Host线程将根据配置列表,主动与其他节点建立连接,并且持续监听来自其他节点的连接;
Sync线程开始相互发送区块高度,发现高度低于其他节点则开启下载逻辑;
RPC与Channel线程等待客户端发送请求,将收到的交易塞入txpool;
Sealer线程从txpool获取交易,
Consensus线程则开始处理共识消息包。
FISCO BCOS源码(3)线程交互和交易的生命周期相关推荐
- Spark源码系列(四)图解作业生命周期
这一章我们探索了Spark作业的运行过程,但是没把整个过程描绘出来,好,跟着我走吧,let you know! 我们先回顾一下这个图,Driver Program是我们写的那个程序,它的核心是Spar ...
- Elasticsearch源码分析—线程池(十一) ——就是从队列里处理请求
Elasticsearch源码分析-线程池(十一) 转自:https://www.felayman.com/articles/2017/11/10/1510291570687.html 线程池 每个节 ...
- ThreadPoolExecutor的应用和实现分析(中)—— 任务处理相关源码分析 线程利用(转)...
前面一篇文章从Executors中的工厂方法入手,已经对ThreadPoolExecutor的构造和使用做了一些整理.而这篇文章,我们将接着前面的介绍,从源码实现上对ThreadPoolExecuto ...
- JUC源码分析-线程池篇(五):ForkJoinPool - 2
通过上一篇(JUC源码分析-线程池篇(四):ForkJoinPool - 1)的讲解,相信同学们对 ForkJoinPool 已经有了一个大概的认识,本篇我们将通过分析源码的方式来深入了解 ForkJ ...
- v21.07 鸿蒙内核源码分析(线程概念) | 是谁在不断的折腾CPU | 百篇博客分析OpenHarmony源码
子曰:"若圣与仁,则吾岂敢.抑为之不厌,诲人不倦,则可谓云尔已矣." <论语>:述而篇 百篇博客系列篇.本篇为: v21.xx 鸿蒙内核源码分析(线程概念篇) | 是谁 ...
- licode源码分析-线程模型
licode源码分析-线程模型 服务器一般都会服务于大量的用户,所以服务端程序的性能往往决定服务用户的多少.现在服务器上的CPU都是多核的,服务端程序为了充分发挥CPU的性能,会使用多进程或多线程.而 ...
- Dcmtk 源码解读SCP交互过程- CEcho Scp
图1 Echo SCP源码动态流程图 1 创建过程 首先,创建一个DcmStorageSCPProxy的代理类,此类继承于 OFThread.整个StoreSCP服务的链接过程,可以简单的描述为在主线 ...
- 并发编程之 源码剖析 线程池 实现原理
前言 在上一篇文章中我们介绍了线程池的使用,那么现在我们有个疑问:线程池到底是怎么实现的?毕竟好奇是人类的天性.那我们今天就来看看吧,扒开 他的源码,一探究竟. 1. 从 Demo 入手 上图是个最简 ...
- java 线程池 源码_java线程池源码分析
我们在关闭线程池的时候会使用shutdown()和shutdownNow(),那么问题来了: 这两个方法又什么区别呢? 他们背后的原理是什么呢? 线程池中线程超过了coresize后会怎么操作呢? 为 ...
- hystrix 源码 线程池隔离_Hystrix源码学习--线程池隔离
分析你的系统 你所认识的分布式系统,哪些是可以进行垂直拆分的?拆分之后系统之间的依赖如何梳理?系统异构之后的稳定性调用如何保证?这些都是可能在分布式场景中面临的问题. 说个比较常见的问题,大家都知道秒 ...
最新文章
- php 正则教程,最通俗易懂的php正则表达式教程(上)
- 设置开机时自动开启和关闭的软件
- python socket编程步骤_python-socket编程(入门,网络基础)
- 外观数列Python解法
- 非递归实现二叉树(前序,中序,后序)c/c++实现
- php中arraymultisort,php 数组函数array_multisort()用法
- 计算文档中不同单词出现的次数
- python怎么查看安装了哪些库_如何查看Python 安装位置以及已经安装的库
- 思杰VDI外篇pvs安装
- 拉普拉斯矩阵与正则化
- 轻松了解python正则表达式 (超详细,附举例)
- python绘制国际象棋规则口诀_python图形工具turtle绘制国际象棋棋盘,
- 由于受到新冠疫情的影响,GDP同比增长率从2019年的6.1%下滑到了2.3%
- 交大网院计算机第五次作业答案,2015交大网院计算机第三次作业word操作题
- ESP32学习笔记(29)——BLE iBeacon广播
- C语言数组练习-摘苹果
- spring之AOP切面不生效!!!!!原因在这
- CSDN邀您加入GitChat,让知识变现!
- D3基本图表绘制——折线图
- C++ lambda递归