深入浅出FISCO BCOS:区块链底层平台

这篇具有很好参考价值的文章主要介绍了深入浅出FISCO BCOS:区块链底层平台。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 深入浅出FISCO BCOS:区块链底层平台,区块链技术学习指南:从0入门到入魔,# FISCO BCOS,区块链,FISCO BCOS

 苏泽

大家好 这里是苏泽 一个钟爱区块链技术的后端开发者

本篇专栏 ←持续记录本人自学两年走过无数弯路的智能合约学习笔记和经验总结 如果喜欢拜托三连支持~


我前面有补充相关的区块链的知识 如果没有了解的话 可能部分概念或名词会不懂哦 建议先了解一波再来看~

目录

我前面有补充相关的区块链的知识 如果没有了解的话 可能部分概念或名词会不懂哦 建议先了解一波再来看~

FISCO BCOS是什么?

架构与设计

流程

发包

收包

接口层

调度层

模块1:共识(Consensus)模块

​编辑

模块2:同步(Sync)模块

如何启动!?

很简单! 一共就两步


FISCO BCOS是什么?

FISCO BCOS是一个金融级、国产安全可控的区块链底层平台,由深圳市金融区块链发展促进会(金链盟)开源工作组牵头研发。作为最早开源的国产联盟链底层平台之一,FISCO BCOS于2017年面向全球开源

架构与设计

深入浅出FISCO BCOS:区块链底层平台,区块链技术学习指南:从0入门到入魔,# FISCO BCOS,区块链,FISCO BCOS

大概就是分为那么几个层 往深了讲可以讲几天几夜 我就挑 作为一个应用级别的开发者哈需要关注的大概就是那么几个地方:

流程

发包

以node0的第一组向node1的第一组发送消息packetA为例:

  1. group1将消息packetA传递到网络层。

  2. 网络层模块对packetA进行编码,将本群组ID添加到packetA的包头,形成新的数据包{groupID(1) + packetA}。

  3. 网络层访问账本白名单,判断node0是否是group1的节点。如果node0不是group1的节点,网络层会拒绝发送数据包。但如果node0是group1的节点,网络层会将编码后的数据包发送给目标节点node1。

收包

当node1接收到来自node0的数据包{groupID(1) + packetA}时:

  1. 网络层会查询账本白名单,检查源节点node0是否是group1的成员。如果node0不是group1的成员,网络层会拒绝该数据包;如果node0是group1的成员,网络层会将数据包传递给解码模块。

  2. 解码模块会从数据包中提取出group ID为1和数据包packetA,并将数据包packetA发送到group1。

接口层

让我们以一个简单的比喻来解释接口层由交易池(TxPool)、区块链(BlockChain)和区块执行器(BlockVerifier)三个模块组成的含义:

假设你是一个公司的项目经理,负责处理公司内部的各种任务和请求。在这个比喻中,你就是调度层,而接口层由三个模块组成。

  1. 交易池(TxPool):交易池就像你的收件箱,它接收来自公司员工或其他部门的新任务和请求。员工们将任务发送到你的收件箱中,而你会将这些任务提供给相关的团队去处理。类似地,交易池接收来自客户端或其他节点的新交易,并将这些交易提供给共识模块进行打包处理。同时,同步模块也可以从交易池中获取新交易进行广播,就像你将任务分发给相关团队一样。

  2. 区块链(BlockChain):区块链就像你的公司档案室,它保存着所有任务的历史记录。当你需要查看过去某个时间点的任务或了解任务执行结果时,你可以向档案室查询相关信息。类似地,区块链模块是你访问底层存储和执行模块的唯一入口。你可以通过区块链模块提交新的区块和区块执行结果,查询历史区块等信息。

    此外,RPC模块可以通过区块链模块获取区块、块高以及交易执行结果等信息,就像你向档案室查询任务历史记录一样。

  3. 区块执行器(BlockVerifier):区块执行器就像你的执行团队,负责实际执行任务。当你将任务分配给执行团队时,他们会按照任务要求进行操作,并将执行结果反馈给你。类似地,区块执行器与调度层进行交互,负责执行调度层传入的区块,并将区块执行结果返回给调度层。它是核心层与调度层之间的重要组件,用于验证和执行区块中的交易逻辑,就像你的执行团队负责执行任务并将结果反馈给你一样。

调度层

模块1:共识(Consensus)模块

共识模块的作用就像是一群人一起决定做什么事情。假设有一个团队,他们需要决定在周末去哪里旅行。每个人都提出了自己的建议,然后大家一起讨论并达成共识。共识模块就像是团队成员,它主要负责执行客户端提交的交易,并确保每个人对交易执行结果的认可。

在共识模块中,有两个重要的部分:打包(Sealer)线程和共识(Engine)线程。打包线程负责从交易池中获取还没有被执行的交易,并将这些交易打包成一个区块。而共识线程则负责对区块执行结果进行共识,确保大家都达成一致意见。目前,常用的共识算法有PBFT和Raft。

共识模块的工作流程如下:

  1. 客户端提交的交易会先缓存到交易池(就像是大家提出的旅行建议被放在一个池子里)。

  2. 当有新的交易进入交易池时,打包线程会被唤醒。打包线程会根据当前最高的区块,从交易池中获取最新的交易,然后打包成一个新的区块。

  3. 打包线程将新的区块传递给共识线程,供共识过程使用。

  4. 共识线程收到新的区块后,启动共识流程。在共识过程中,会调用区块执行器执行区块中的每一笔交易,并确保大家对执行结果达成一致。

  5. 如果共识成功,就会调用区块链模块将新的区块和区块执行结果提交到底层数据库。

  6. 当新的区块成功上链后,交易池会删除已经被打包进区块的交易,并将交易执行结果发送给客户端。

深入浅出FISCO BCOS:区块链底层平台,区块链技术学习指南:从0入门到入魔,# FISCO BCOS,区块链,FISCO BCOS

模块2:同步(Sync)模块

同步模块的目标是确保每个团队成员都拥有完整的信息。假设有一个团队,其中的成员分布在不同的地方。为了保持大家的信息一致,每个人会定期向其他人汇报自己的进展。同步模块就像是团队成员之间的信息传递通道,它主要负责交易和区块的同步。

同步模块包括交易同步和区块同步。

交易同步的过程如下:

  1. 当客户端向特定团队的交易池提交新的交易时,交易同步线程会被唤醒。这个线程会将新的交易广播给其他团队的节点,以确保每个团队都有完整的交易信息。

  2. 假设客户端将交易A发送到团队1,将交易B发送到团队2。交易同步线程会将交易A广播给所有团队的节点,而将交易B广播给所有团队的节点。

深入浅出FISCO BCOS:区块链底层平台,区块链技术学习指南:从0入门到入魔,# FISCO BCOS,区块链,FISCO BCOS

区块同步的过程如下:

  1. 节点0、节点1和节点2的区块同步线程会定期广播最新区块的高度信息。

  2. 当节点1收到节点0和节点2的最新区块高度后,发现自己的区块高度是3,低于节点0和节点2的最新区块高度6。

  3. 为了保持负载均衡,节点1向节点2请求第4个区块,并向节点0请求第5和第6个区块。

  4. 节点0和节点2接收到节点1的区块请求后,分别将第5和6个区块返回给节点1,节点2还返回第4个区块。

  5. 节点1按照区块的顺序执行第4、5和6个区块,并将最新的区块按顺序提交到底层存储。这样,节点1就与其他节点保持了区块的同步。

深入浅出FISCO BCOS:区块链底层平台,区块链技术学习指南:从0入门到入魔,# FISCO BCOS,区块链,FISCO BCOS

如何启动!?

很简单! 一共就两步

  1. 学习如何编写智能合约(本专栏重点介绍solidity语言)相当于就是一门新的编程语言,只是引用了很多不一样的库 还有要学习新的语法
  2. 学习如何使用FISCO BCOS平台理解其部署、安装 、使用方法以及调试、优化等

本篇专栏就是围绕着这两条线进行展开讲解  学习记录的

然后就是最最激动的 实战部分(会随着项目进度陆续发出)

链接摆上、按需食用!:

智能合约:

FISCO BCOS:文章来源地址https://www.toymoban.com/news/detail-840467.html

到了这里,关于深入浅出FISCO BCOS:区块链底层平台的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【深入浅出RocketMQ原理及实战】「底层原理挖掘系列」透彻剖析贯穿RocketMQ的消息顺序消费和并发消费机制体系的原理分析

    首先, DefaultMQPushConsumerImpl 是一个实现了 RocketMQ 的消费者客户端接口的类。该类的主要作用是从 RocketMQ 的 Broker 获取消息并进行消费。 主要可以通过pullMessage方法进行获取对应的操作,如下图所示。 在消费消息时, DefaultMQPushConsumerImpl 会将获取到的消息放入一个 processQueue

    2024年02月11日
    浏览(29)
  • 【知识图谱】深入浅出讲解知识图谱(技术、构建、应用)

    本文收录于《深入浅出讲解自然语言处理》专栏,此专栏聚焦于自然语言处理领域的各大经典算法,将持续更新,欢迎大家订阅! 个人主页:有梦想的程序星空 个人介绍:小编是人工智能领域硕士,全栈工程师,深耕Flask后端开发、数据挖掘、NLP、Android开发、自动化等领域

    2023年04月08日
    浏览(29)
  • 《深入浅出SSD:固态存储核心技术、原理与实战》----学习记录(二)

    SSD主要由两大模块构成—— 主控和闪存介质 。其实除了上述两大模块外,可选的还有缓存单元。主控是SSD的大脑,承担着指挥、运算和协调的作用,具体表现在 一是实现标准主机接口与主机通信 二是实现与闪存的通信 三是运行SSD内部FTL算法 可以说,一款主控芯片的好坏直

    2024年02月12日
    浏览(39)
  • 【大虾送书第七期】深入浅出SSD:固态存储核心技术、原理与实战

    目录  ✨写在前面   ✨内容简介  ✨作者简介  ✨名人推荐  ✨文末福利      🦐博客主页:大虾好吃吗的博客      🦐专栏地址:免费送书活动专栏地址         近年来国家大力支持半导体行业,鼓励自主创新,中国SSD技术和产业良性发展,产业链在不断完善,与

    2024年02月10日
    浏览(39)
  • Fisco Bcos区块链一(搭建单群组FISCO BCOS联盟链)

    技术文档:https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/index.html 1、搭建单群组FISCO BCOS联盟链 1. 安装centos依赖包 安装依赖包openssl、curl 2. 创建操作目录, 下载安装脚本 如果因为网络问题导致长时间无法下载build_chain.sh脚本,请尝试 3. 搭建单群组4节点联盟链 在fisco目录下执

    2024年02月10日
    浏览(38)
  • Azure 深入浅出[3]: 如何在MS Visio里面画专业的Azure技术架构图?

    笔者最近在研究Azure,需要画Azure的技术架构图;画Azure架构图的方法很多,有在线的工具,有基于Azure的PPT模板,同时也有笔者这样选择用最传统的微软的工具:MS Visio来绘图。那么在MS Visio里面如何绘制漂亮专业的Azure的技术架构图呢?当然是Github的开源项目走起。 sandroasp的

    2024年02月01日
    浏览(38)
  • FISCO BCOS 区块链(一)

    目录 一、搭建 FISCO BCOS 链 1、安装 openssl, curl 依赖 2、安装 build_chain 脚本 二、配置控制台 1、下载java jdk 2、安装控制台 3、拷贝配置文件以及证书 4、启动控制台 三、Java-SDK(idea版) 1、创建 project  2、引入 Java-SDK依赖 3、sol2java.sh 4、导入所需资源 5、创建测试类 参考 FISCO

    2024年01月24日
    浏览(37)
  • K8s项目实战笔记获阿里技术大咖力荐,深入浅出解读容器编排原理与应用

    一、前言 Kubernetes,简称K8s,宛如一位技艺高超的舞台导演,优雅地指挥着容器集群的华丽表演。它不仅仅是一个开源的容器集群管理系统,更是自动化部署、智能扩缩容与维护等功能的集大成者。作为领军的容器编排工具,Kubernetes展现了基于容器技术的分布式架构的无尽魅

    2024年03月10日
    浏览(40)
  • FISCO BCOS区块链建立配置启动

    创建操作目录, 下载安装脚本 搭建单群组4节点联盟链 启动FISCO BCOS链 安装java 获取控制台并回到fisco目录 拷贝控制台配置文件 配置控制台证书 编写HelloWorld合约 contract HelloWorld { string name; } 部署HelloWorld合约 调用HelloWorld合约 见https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/do

    2024年02月07日
    浏览(43)
  • Fisco Bcos区块链四(扩容节点)

    4、扩容节点 1. 操作命令 为保证区块链安全性,FISCO BCOS引入了游离节点、观察者节点和共识节点,这三种节点类型可通过控制台相互转换。 共识节点:参与共识的节点,拥有群组的所有数据(搭链时默认都生成共识节点)。 观察者节点:不参与共识,但能实时同步链上数据

    2024年02月05日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包