如何发送一笔交易到链上,交易在链上又经历了哪些处理流程,直到达成全网共识。

一般区块链底层项目都会给出交互协议的说明文档,通常实现包括JsonRPC、gRPC、Restful等不同类型的交互协议。

不同项目的交互接口会有所不同,但大都会包含

  • 发送交易、
  • 部署合约、
  • 调用合约、
  • 查看区块、
  • 查看交易以及回执、
  • 查看区块链状态

等接口。

不同项目的数据编码也会有所不同,有些采用Json,有些采用protobuf等。

以FISCO BCOS为例,通过多个模块相互协作,完成交易整个生命周期的处理:

网络模块的Host线程将根据配置列表,主动与其他节点建立连接,并且持续监听来自其他节点的连接;

Sync线程开始相互发送区块高度,发现高度低于其他节点则开启下载逻辑;

RPC与Channel线程等待客户端发送请求,将收到的交易塞入txpool;

Sealer线程从txpool获取交易,

Consensus线程则开始处理共识消息包。

FISCO BCOS源码(3)线程交互和交易的生命周期相关推荐

  1. Spark源码系列(四)图解作业生命周期

    这一章我们探索了Spark作业的运行过程,但是没把整个过程描绘出来,好,跟着我走吧,let you know! 我们先回顾一下这个图,Driver Program是我们写的那个程序,它的核心是Spar ...

  2. Elasticsearch源码分析—线程池(十一) ——就是从队列里处理请求

    Elasticsearch源码分析-线程池(十一) 转自:https://www.felayman.com/articles/2017/11/10/1510291570687.html 线程池 每个节 ...

  3. ThreadPoolExecutor的应用和实现分析(中)—— 任务处理相关源码分析 线程利用(转)...

    前面一篇文章从Executors中的工厂方法入手,已经对ThreadPoolExecutor的构造和使用做了一些整理.而这篇文章,我们将接着前面的介绍,从源码实现上对ThreadPoolExecuto ...

  4. JUC源码分析-线程池篇(五):ForkJoinPool - 2

    通过上一篇(JUC源码分析-线程池篇(四):ForkJoinPool - 1)的讲解,相信同学们对 ForkJoinPool 已经有了一个大概的认识,本篇我们将通过分析源码的方式来深入了解 ForkJ ...

  5. v21.07 鸿蒙内核源码分析(线程概念) | 是谁在不断的折腾CPU | 百篇博客分析OpenHarmony源码

    子曰:"若圣与仁,则吾岂敢.抑为之不厌,诲人不倦,则可谓云尔已矣." <论语>:述而篇 百篇博客系列篇.本篇为: v21.xx 鸿蒙内核源码分析(线程概念篇) | 是谁 ...

  6. licode源码分析-线程模型

    licode源码分析-线程模型 服务器一般都会服务于大量的用户,所以服务端程序的性能往往决定服务用户的多少.现在服务器上的CPU都是多核的,服务端程序为了充分发挥CPU的性能,会使用多进程或多线程.而 ...

  7. Dcmtk 源码解读SCP交互过程- CEcho Scp

    图1 Echo SCP源码动态流程图 1 创建过程 首先,创建一个DcmStorageSCPProxy的代理类,此类继承于 OFThread.整个StoreSCP服务的链接过程,可以简单的描述为在主线 ...

  8. 并发编程之 源码剖析 线程池 实现原理

    前言 在上一篇文章中我们介绍了线程池的使用,那么现在我们有个疑问:线程池到底是怎么实现的?毕竟好奇是人类的天性.那我们今天就来看看吧,扒开 他的源码,一探究竟. 1. 从 Demo 入手 上图是个最简 ...

  9. java 线程池 源码_java线程池源码分析

    我们在关闭线程池的时候会使用shutdown()和shutdownNow(),那么问题来了: 这两个方法又什么区别呢? 他们背后的原理是什么呢? 线程池中线程超过了coresize后会怎么操作呢? 为 ...

  10. hystrix 源码 线程池隔离_Hystrix源码学习--线程池隔离

    分析你的系统 你所认识的分布式系统,哪些是可以进行垂直拆分的?拆分之后系统之间的依赖如何梳理?系统异构之后的稳定性调用如何保证?这些都是可能在分布式场景中面临的问题. 说个比较常见的问题,大家都知道秒 ...

最新文章

  1. php 正则教程,最通俗易懂的php正则表达式教程(上)
  2. 设置开机时自动开启和关闭的软件
  3. python socket编程步骤_python-socket编程(入门,网络基础)
  4. 外观数列Python解法
  5. 非递归实现二叉树(前序,中序,后序)c/c++实现
  6. php中arraymultisort,php 数组函数array_multisort()用法
  7. 计算文档中不同单词出现的次数
  8. python怎么查看安装了哪些库_如何查看Python 安装位置以及已经安装的库
  9. 思杰VDI外篇pvs安装
  10. 拉普拉斯矩阵与正则化
  11. 轻松了解python正则表达式 (超详细,附举例)
  12. python绘制国际象棋规则口诀_python图形工具turtle绘制国际象棋棋盘,
  13. 由于受到新冠疫情的影响,GDP同比增长率从2019年的6.1%下滑到了2.3%
  14. 交大网院计算机第五次作业答案,2015交大网院计算机第三次作业word操作题
  15. ESP32学习笔记(29)——BLE iBeacon广播
  16. C语言数组练习-摘苹果
  17. spring之AOP切面不生效!!!!!原因在这
  18. CSDN邀您加入GitChat,让知识变现!
  19. D3基本图表绘制——折线图
  20. C++ lambda递归

热门文章

  1. sqlserver2005身份验证
  2. (摘)老司机也必须掌握的MySQL优化指南
  3. echarts改变颜色属性的demo
  4. xilinx FIFO的使用及各信号的讨论
  5. javaweb实现教师和教室管理系统 java jsp sqlserver
  6. Swift - EasingAnimation绘制圆环动画
  7. js获取url参数方法
  8. cd oracle home/dbs,Oracle专家高级编程学习笔记
  9. java池模式_JAVA模式 对象池 简要代码示例
  10. 文献阅读 Linear Regression for Face Recognition