im钱包官网下载
数字资产服务平台

im钱包官网下载是全球著名的数字资产交易平台之一,主要面向全球用户提供比特币、莱特币、以太币等数字资产的币币和衍生品交易服务。

imtoken官方版下载2.8.3|区块链平台架构

时间:2024-03-13 03:51:02

区块链交易所开发与搭建 - 知乎

区块链交易所开发与搭建 - 知乎切换模式写文章登录/注册区块链交易所开发与搭建亿博网络专注网络软件系统开发 在数字货币的大潮推动下,交易所作为数字货币买卖的重要平台,其开发与搭建成为了众多技术团队和企业关注的焦点。本文将详细解析交易所开发搭建的相关知识,旨在为有意涉足此领域的读者提供专业精确的科普信息。交易所的核心职能是为数字货币买卖双方提供一个安全、高效、可靠的交易环境。因此,从技术角度出发,开发一个交易所需要考虑的因素包括但不限于系统架构、安全性、用户体验和监管合规等。 系统架构是交易所开发的灵魂所在。一套合理的系统架构应该保证交易所能够在高频的交易环境中稳定运行,同时具备良好的扩展性以应对不断增长的用户量和交易量。这往往要求开发者采用分布式架构设计,利用负载均衡、数据库分库分表等技术手段来提升系统的并发处理能力和可用性。同时,微服务架构也因其灵活的服务拆分和部署能力而受到青睐。 安全性是交易所开发中最为重要的考量之一。交易所不仅要保护用户资产的安全,还要确保交易数据的真实性和完整性。为此,开发人员需要实现多层次的安全策略,如使用HTTPS协议进行数据传输,采用冷钱包和热钱包结合的方式来管理用户的数字货币资产,以及实现多签名等多重授权机制来防止非法操作。此外,智能合约的应用也可以在一定程度上提高交易的安全性和效率。 用户体验方面,一个直观、易用且响应迅速的交易界面对于吸引和保留用户至关重要。因此,开发交易所时需注重前端设计,提供清晰的交易图表、简洁的操作流程和即时的交易反馈。此外,移动端应用的开发也不可忽视,因为越来越多的用户倾向于通过手机进行交易操作。 监管合规是交易所运营不可回避的话题。不同国家和地区对数字货币交易所的监管政策不一,开发团队必须充分了解目标市场的法律法规,并确保交易所的运营模式和技术支持符合当地监管要求。例如,实名认证机制、反洗钱(AML)和客户身份识别(KYC)程序等都是交易所开发中需要考虑的重要因素。 除了上述要点,交易所开发还涉及到交易撮合引擎的优化、资产管理系统的建立、风险控制机制的设计等多个技术领域。每一个环节都需要开发者投入大量的时间和精力去研究和实现。同时,为了保证交易所的稳定运行,专业的运维团队也是必不可少的。他们需要对系统进行持续的监控和维护,及时发现并解决可能出现的技术问题。 交易所的开发搭建是一个复杂而精细的工程,它不仅需要技术团队具备高超的开发技能,还要求团队成员对数字货币市场有深入的理解。随着技术的不断进步和监管政策的日趋成熟,交易所开发领域将会迎来更多创新和机遇,而这正是技术追求者们所期待的未来。发布于 2024-03-08 20:40・IP 属地广东区块链交易所​赞同​​添加评论​分享​喜欢​收藏​申请

【笔记】区块链的系统架构、数据结构及运行机制_区块链架构图-CSDN博客

>

【笔记】区块链的系统架构、数据结构及运行机制_区块链架构图-CSDN博客

【笔记】区块链的系统架构、数据结构及运行机制

最新推荐文章于 2022-07-07 16:38:27 发布

Time-space

最新推荐文章于 2022-07-07 16:38:27 发布

阅读量1w

收藏

50

点赞数

6

分类专栏:

区块链

文章标签:

区块链

区块链系统

区块链系统架构

区块链的演化

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/cbwem/article/details/104443267

版权

区块链

专栏收录该内容

9 篇文章

1 订阅

订阅专栏

文章目录

一、区块链的系统框架1.区块链的系统架构与运行2.数据层、网络层与共识层3.激励层、合约层与应用层

二、区块的概念和识别1.区块与区块头2.区块的识别

三、创世区块与区块的连接1.创世区块2.区块的连接

四、区块链的数据结构1.区块链的结构基础2.哈希值、梅克尔根等数据及作用3.难度确认、运行及其作用4.时间戳、随机数及其作用

五、区块链的工作流程与机制1.步骤与防止分叉2.安全、透明与不可篡改的系统机制

六、从区块链1.0到区块链3.0的演化1.区块链的进化2.区块链1.03.区块链2.04.区块链3.0

一、区块链的系统框架

1.区块链的系统架构与运行

  区块链的系统架构,主要是由数据层、网络层与共识层构成的底层网络,由数字货币、智能合约与其他“去中心化”组织等构成的应用层。下图为区块链的系统架构图。   区块链是一个去中心的、分散式的网络账本,所以其系统架构也符合网络的基本特点。该网络账本构成一个系统,该系统最底层、最基础的是数据结构。这个结构就是将信息和数据采用一定的方式、格式组织起来,输入到区块链系统中并由其处理。当统一方式的数据输入后,网络层便开始连链接,在全网的节点之中进行广播、验证,然后在共识层中由全网达成共识而构建起区块。所有区块进行“组装”,最终构建起各种系统产品的运行平台,如公有链、私有链与联盟链等。而数字货币、智能合约、去中心化组织等都是区块链平台上运行的产品。

  在区块链的系统架构中,各个层次以交易为中心构建起一个完整的相互关联的循环体系,这一循环模式是这样的:   首先,应用层的数字货币、智能合约等产品对于底层网络来说,传输的全是数据,即应用层相当于数据层的数据输入源。这些数据必须进入数据层,按照区块链的格式进行封装。   其次,在数据封装完成后,就进入分布式(P2P)网络进行广播,由全网节点通过一定机制进行确认。   最后,当全网达成共识之后,区块构建完成并连接到主链之上,完成一次完整交易的流程,并开始下一次交易的循环。

  这一循环过程,从技术角度讲,区块链中的区块是一种记录交易的数据结构,反映了一笔交易的资金流向。系统中已经达成交易的区块连接在一起形成了一条主链,所有参与计算的节点都记录了主链的信息,区块所承载的任务数据具体包括:交易双方私钥、交易数量、电子货币数字签名等。前一个区块形成的散列用来将区块连接起来,实现过往交易的顺序排列。随机数是交易达成的核心,所有“矿工”节点竞争计算随机数,最快得到答案的节点生成一个新的区块,并广播到所有节点进行更新,如此完成一笔交易,然后开始新的循环。

2.数据层、网络层与共识层

  数据层封装了底层数据区块的链式结构以及相关的非对称公私钥数据加密、时间戳等技术,这是整个区块链技术中最底层的数据结构。

  网络层包括分布式组网机制、数据传播机制和数据验证机制等,由于采用了完全的P2P组网技术,意味着区块链具有自动组网功能。

  共识层主要包括封装网络节点的各类共识机制算法。共识机制算法是区块领导核心技术,决定了到底有谁来记账,而且记账者选择的方式将会影响整个系统的安全性和可靠性。知名的有**工作量证明机制(PoW)、权益证明机制(PoS)、委托权益证明机制(DPoS)**等。

3.激励层、合约层与应用层

  激励层将经济因素集成到区块链技术体系中,主要包括经济激励的发行机制和分配机制,该层主要出现在公有链、私有链中。激励机制往往也是一种博弈机制,让更多节点愿意遵守规则。

  合约层主要封装各类脚本、算法和智能合约,是区块链可编程特性的基础。

  应用层封装了区块链的各种应用场景和案例。 在该模型中,基于时间戳的链式区块结构、分布式节点共识机制、基于共识机制的经济激励和灵活可编程的智能合约是区块链技术最具代表性的和创新点。

二、区块的概念和识别

1.区块与区块头

  区块是区块链的基本组成单元,它由一个包含元数据的区块头和紧跟其后的构成区块主体的一系列交易组成。 区块的基本数据结构如下表所示。   区块头由三组区块元数据组成。 第一组元数据引用父区块哈希值的数据,这组元数据用于将该区块与区块链中前一区块相连接。第二组元数据,即难度、时间戳和随机数(Nonce),其与挖矿竞争相关。第三组元数据是梅克尔树根,一种用来有效地总结区块中所有交易的数据结构。区块头的数据结构如下表所示。

2.区块的识别

  区块可以通过两种方式被识别:区块哈希值或区块高度。   区块主标识符是它的加密哈希值,通过安全散列算法-256(SHA-256)对区块头进行二次哈希计算而得到的数字指纹,所产生的“32字节”哈希值被称为区块哈希值。区块哈希值可以唯一、明确地标识一个区块,并且任何节点通过简单地对区块头进行哈希计算都可以独立地获取该区块哈希值。   区块哈希值可能会作为区块元数据的一部分被存储在一个独立的数据库表中,以便于索引以及更快地在在磁盘中检索区块。

  区块在区块链中的位置即区块高度,区块高度可以识别区块。   区块高度和区块哈希值不同之处在于,一个单一的区块有一个固定、明确的区块高度,但是两个或两个以上的区块也可能有相同的区块高度,并在区块链里争夺同一位置。一个区块的区块哈希值能唯一地识别一个特定的区块,但一个区块高度却不一定能识别出唯一的区块。

三、创世区块与区块的连接

1.创世区块

  创世区块是区块链里面所有区块的共同祖先,意味着从任一区块循链向后回溯,最终都将到达创世区块。 每一个节点都“知道”创世区块的哈希值、结构、被创建的时间和里面的交易。   因此,每个节点都把该区块作为区块链的首区块,从而构建了一条安全的、可信的区块链根,每一个节点都包含创世区块,永远不会被改变。

2.区块的连接

  当某个节点接收到传入区块时,它会验证这些区块,然后链接到现有的区块链上。为了建立这个链接,该节点将检查传入的区块头并寻找该区块的“父区块哈希值”。   每个参与节点都可以保存整个区块链的副本,只要有参与节点存在,区块链数据就不会丢失。区块链上的每个区块都可以用来记录货币、股权、债券、数字签名、数字合约以及其他任何数字化内容。

四、区块链的数据结构

1.区块链的结构基础

  首先,区块链的数据结构是在SHA-256支持下实现的;其次,在区块对交易封装过程中,采用高效的梅克尔树算法,一步一步地将繁杂的信息进行归纳和简化;再次,为了保证区块的顺序链接,需要采用时间戳机制在区块中写入时间参数;最后,为了达成共识机制,并使全网参与的“挖矿”工作顺利进行,系统在PoW共识机制下采用了难度目标和随机数两种设计,保证系统在一个可靠的区间内运转。

2.哈希值、梅克尔根等数据及作用

  哈希算法将任意长度的二进制值映射为固定长度的较小二进制值,这个较小的二进制值称为哈希值。一段明文哪怕只更改一个字母,都将产生不同的哈希值。   哈希函数的单向、输出数据长度固定等特征使它可以生成消息或者数据,而且哈希算法和哈希值一般用于快速查找和加密算法。   哈希算法应用在区块中,既减小了区块存储的数据量,也不影响对数据的链接访问。

  每个数据区块包含区块头和区块体,区块头封装了当前版本号、前一区块哈希值、当前区块PoW要求的随机数(Nonce)、时间戳以及梅克尔根信息。区块体包括当前去看经过验证的、区块创建过程中生成的所有交易记录;这些记录就是通过梅克尔树的哈希过程生成唯一的梅克尔根后,并记入了区块头中。   梅克尔根,是指梅克尔树的根,因为梅克尔树在计算的过程中主要用到哈希算法,或称为梅克尔哈希树。

3.难度确认、运行及其作用

  工作量证明机制是一个可以让每个参与者参与交易验证的方式,为形成一个多方共同维护并共享同一份记录交易的账本,一个基于零信任基础、去中心化的P2P网络系统。   工作量证明是让任一参与节点花费时间和运算资源来计算一组数学公式的结果,一旦这个结果被计算出来,其他参与节点也可用相关的数学公式去验证这个值是否有效。进行PoW计算的过程也被形象地称为“挖矿”,参与节点被成称为“矿工”,计算过程如下:   每个区块的区块头包含许多固定值,只有随机数值为随机值,因此每个节点进行PoW计算时,通过不断替换这个随机值来让这个区块的区块头哈希值小于一个被设定好的难度目标值。当最接近难度目标值的哈希值产生后,该“矿工”可以向全网广播,如果同意时间获得超过51%节点的认可,意味着该“矿工”完成了一个新区块,可以将其链接到区块链上,其他“矿工”再以这一个区块为父区块进行下一个区块的运算。

  区块链中的难度值,是指节点要运算出低于难度目标值的哈希值,平均花费的时间,即平均要完成一次PoW计算所用的时间。   比特币的难度值是可以动态调整的,目前每产生2016个区块会调整一次难度值,以每10分钟产生一个区块估算,大约每两周会调整一次难度值。难度值的调整是由每个完整结点肚子自动发生的,每达到2016个区块后,所有结点都会按统一的公式自动调整难度值。

新难度值公式:新难度值 = 旧难度值 x (20160分钟 / 过去2016个区块花费时长)目标值(Target)的计算公式:目标值 = 最大目标值 / 难度值

  目标值的大小与难度值成反比。 比特币工作量证明的完成,是以“矿工”计算出来的区块哈希值小于目标值且最接近于目标值为判断标准。

4.时间戳、随机数及其作用

  时间戳,能表示一份数据在某个特定时间之前已经存在的、完整的、可验证的数据,其通常是一个字符序列,能够唯一地标识某一刻时间。 在区块链中采用了“unix”时间计数方式,由时间戳服务器为每一个区块加上的时间序列,记录了该区块的产生时间。   比特币挖矿的目标就是找到一个随机数,使在这个值下的区块头的SHA-256哈希值输出必须小于设定的难度值,“矿工”通过不停地变更区块头中的随机数,并对每次变更后的区块头做双重SHA-256运算,将结果只与当前网络的目标值作对比,如果小于目标值,则工作量证明完成,区块创建成功。

五、区块链的工作流程与机制

1.步骤与防止分叉

  区块链的工作步骤:

发送节点将新的数据记录向全网进行广播。接受节点对收到的数据记录信息尽心验证,如记录信息是否合法,通过检验后,数据记录将被纳入一个区块中。全网所有接受结点对区块执行共识算法,包括工作量证明、权益证明等。区块通过共识算法过程后被正式纳入区块链中存储,全网节点均表示接受该区块,新区块将以该区块链为基础进行延长。

  全网广播,实际上不需要让全网所有节点收到,只要大部分节点收到即可。对于那些没有收到的、丢失的区块,区块链系统是具有容错能力的,如果某节点没有收到特定区块,当节点发现自己缺失区块时,可以提出自己下载区块的请求。   节点始终都将最长的区块链视为正确的链,并持续以此为基础进行验证和延长。 当其中一条被证实为较长,那么在另一条分支链条上工作的节点将转换阵营,开始在较长的链条上工作,由此防止了区块链的分叉。

2.安全、透明与不可篡改的系统机制

  时间戳把数据区块的内容与数据区块本身联系起来,其重要意义在于其使数据区块形成了新的结构。这个新的结构使各个区块通过时间线有序地连接起来,形成了区块的链条,因此才成为区块链。   通过给数据记录印上时间标签,使每一条数据记录都具有唯一性,从而使数据记录本身在区块和区块上的位置进行精确定位且可回溯,也给其他的校验机制发挥协同作用提供了极大的便利性和确定性,使整个区块链网络能够确定性地验证某条数据记录是否真实。

  区块链网络是一个公开的、难以攻破的、不可篡改数据记录和制造虚假数据的诚实可信的系统。   关键技术包括两个方面:一是数据加密机制;二是共识算法。   在数据加密机制中,一方面要有一个私钥,另一方面要使用哈希算法等。   共识算法,是区块链中节点保持区块数据一致、准确的基础,主流共识算法包括工作量证明(PoW)、权益证明(PoS)、委托权益证明(DPoS)等。

六、从区块链1.0到区块链3.0的演化

1.区块链的进化

  划分方式1:   区块链1.0是以比特币为代表的数字货币应用,其场景包括之父、流通等;区块链2.0结合数字货币与智能合约,对金融领域的更广泛场景和流程进行优化的应用;区块链3.0则超出金融领域,旨在为各种行业提供去中心化解决方案。   划分方式2:   区块链1.0是可编程的数字货币;区块链2.0是可编程的智能合约;区块链3.0是可编程的社会治理。

2.区块链1.0

  区块链1.0主要是支撑虚拟货币的应用,包括转账、汇款、数字化支付以及加密货币,比特币就是区块链1.0的代表,也是最成功的数字货币。   区块链1.0的实质就是可编程的数字货币。 主要应用领域为“加密数字货币”,包括货币的发行机制、分配机制、币值调节机制等。   比特币可视为区块链首个在金融支付领域的应用,也是应用最广泛的公有区块链。

3.区块链2.0

  区块链2.0是可编程的智能合约。 主要应用领域为智能合约,智能合约能够令各方自动执行操作,结果由软件验证,而非人类扮演中介。   区块链2.0的典型应用包括:(1)股权、债券合约;(2)证券与金融合约;(3)糊住保险合约;(4)权利登记、转让;(5)博彩;(6)防伪;(7)物联网等。

4.区块链3.0

  区块链3.0可看作可编程的社会治理。   总体有两大类应用:

超越货币、经济、市场的公正性应用。超越货币、经济、市场的效率和协作。

  区块链3.0是价值互联网的内核。区块链能够对每一个互联网中代表价值的信息和字节进行产权确认、计量和存储,从而实现资产在区块链上可被追踪、控制和交易的目的。   价值互联网的核心是由区块链构造一个全球性的分布式记账系统,它不仅能够记录金融业的交易,而且几乎可以记录任何有价值的能以嗲吗形式进行表达的实物。实现信息的兹证明,不再依靠某个或第三人或机构获得信任或建立信用;实现信息的共享,通过解决信任的问题来提高整个系统的运作效率。

  区块链3.0的主要应用在社会治理领域,例如:

供应链自动化管理自动化采购智能化物联网应用产权登记虚拟资产兑换、转移

优惠劵

Time-space

关注

关注

6

点赞

50

收藏

觉得还不错?

一键收藏

知道了

1

评论

【笔记】区块链的系统架构、数据结构及运行机制

文章目录一、区块链的系统框架1.区块链的系统架构与运行2.数据层、网络层与共识层3.激励层、合约层与应用层二、区块的概念和识别1.区块与区块头2.区块的识别三、创世区块与区块的连接1.创世区块2.区块的连接四、区块链的数据结构1.区块链的结构基础2.哈希值、梅克尔根等数据及作用3.难度确认、运行及其作用4.时间戳、随机数及其作用五、区块链的工作流程与机制1.步骤与防止分叉2.安全、透明与不可篡改的...

复制链接

扫一扫

专栏目录

区块链学习——区块链的架构

kuangsonghan的博客

04-20

2万+

摘要通过我前几篇区块链知识的介绍,我们知道区块链系统实际上就是一个维护公共数据账本的系统,一切的技术单元的设计都是为了更好地维护好这个公共账本。通过共识算法达成节点的账本的数据一致;通过密码算法确保账本数据的不可篡改性以及数据发送的安全性;通过脚本系统扩展账本数据的表达范畴。我们甚至可以认为去区块链系统实际上就是特别设计的数据库系统或者分布式数据库系统,在这个数据库可以存储数字货币,也可以存储更复...

区块链分类与架构模型-学习笔记

01-20

一、分类

        1)第一种分类:根据区块链运行过程中是否需要中心节点或者权限优势节点授权,可将区块链划分为无许可区块链(Permissionless Blockchain)和许可区块链(Permissioned Blockchain).

        (1)无许可区块链:是一种完全去中心化的分布式账本技术,运行节点自由加入和退出,无须通过中心节点注册、认证和授权。

        (2)许可区块链:存在一个或多个节点具有较高权限,这些节点可以是可信第三方,也可能节点之间仍然互不信任、需要协商制定区块链维护规则和访问控制权限,只有经过相应功能授权的节点才可访问数据、参与系统维护。

 

1 条评论

您还未登录,请先

登录

后发表或查看评论

区块链-参考架构.pdf

07-27

区块链作为一种新兴的应用模式,在金融服务、供应链管理、文化娱乐、智能制造、社会公益和教育就业等领域有着广泛的应用价值。近几年来,区块链技术和应用正经历快速发展的过程。与此同时,国内国际上区块链领域的标准仍属空白,行业发展碎片化,行业应用存在一定的盲目性,不利于区块链的应用落地和技术发展。区块链的标准化有助于统一对区块链的认识,规范和指导区块链在各行业的应用,以及促进解决区块链的关键技术问题,对于区块链产业生态发展意义重大。目前,国内外标准化组织已将区块链标准化提上议事日程,开展了组织建设、标准预研等一系列工作,并初步取得了一定进展。

常见区块链基础架构

qq_41547320的博客

07-07

1万+

本文根据当前网络上大家熟知的公链和联盟链,介绍下区块链的整体架构。

一、基础原理架构技术层面,区块链的结构如下图所示。一条区块链上有多个区块,每个区块包括区块头与区块体。区块头中主要包括版本号、前一区块哈希值、时间戳、随机数、目标哈希、默克尔根;区块体中是通过默克尔树记录的账本信息。

这个主要是展示的区块链原理的技术架构,接下来,主要介绍组织架构及层级。二、早期的区块链架构

区块链技术刚提出的时候,在架构上通常被分为6层或者4层,6层的概念即数据层、网络层、共识层、激励层、合约层和应用层,下图为区块链技术早

区块链技术之Fabric逻辑架构详解

phymat.nico的专栏

04-04

1211

一、架构图

该图出自区块链技术指南一书,架构解释也主要出自于本书,有兴趣的同学可以去自行找一找资源。

如图所示:fabric的底层主要由四种服务构成,分别是:身份服务、策略服务、区块链服务、智能合约服务。在这些基础服务之上,通过一些API、SDK、CLI为上层业务应用提供一些可以编程的接口服务。

二、服务详解

2.1身份服务

首先明确一点,fabric和比特币与以太坊的最大的区别在于其身份识别能力...

一文看懂区块链架构设计

热门推荐

lucky_greenegg的专栏

10-15

8万+

转自:http://www.8btc.com/ebook-blockchain

前言

区块链作为一种架构设计的实现,与基础语言或平台等差别较大。区块链是加密货币背后的技术,是当下与VR虚拟现实等比肩的热门技术之一,本身不是新技术,类似Ajax,可以说它是一种技术架构,所以我们从架构设计的角度谈谈区块链的技术实现。

无论你擅长什么编程语言,都能够参考这种设计去实现一款区块链

西安电子科技大学081201 计算机系统结构数据结构笔记.zip

03-25

西安电子科技大学081201 计算机系统结构数据结构笔记.zip

区块链知识整理之系统架构及各层功能

qq_39209117的博客

01-14

1万+

文章目录前言一、区块链技术基础模型和关键技术1.1系统架构1.1.1数据层二、使用步骤1.引入库2.读入数据总结

前言

本篇笔记是阅读区块链综述论文

[1] 袁勇,王飞跃. 区块链技术发展现状与展望_袁勇[J]. 自动化学报, 2016, 42(4): 481-494.

[2] 代闯闯,栾海晶,杨雪莹,等. 区块链技术研究综述[J]. 计算机科学, 2021(S2).

和查阅一些网络资料所作整理。

一、区块链技术基础模型和关键技术

比特币是由交易、共识协议和通信网络等技术组件所构成的一种去中心化的电子交

区块链的结构和原理

weixin_42419611的博客

11-03

1万+

区块链的结构和原理

文章目录区块链的结构和原理区块链原理区块链结构关于区块链的几个问题结语

区块链原理

区块链是一个链表,链表上存有交易信息,所有人共享同一个链表,因此它也是一个没有管理员的分布式数据库,即去中心化数据库,所有人都能加入这个数据库,并且可以读取任意块,也可以在区块链尾加入块,但无法修改已有块,新块加入后所有人的链表都将更新。采矿就是在链表中加入新块。

区块链结构

图 1:区块链的一个例子,它由连续的块序列组成

图 2:块结构

块由块头和块体组成:

块头包含:

Block versio

区块链架构有哪些?

XYlittlework的博客

06-11

1万+

本文将整理汇总目前常见的区块链各种架构,通过汇总分析,区块链的架构基本都大同小异,前面详细介绍几个,后面的就不重复介绍了。

一、区块链原理架构

技术层面,区块链的结构如下图所示。一条区块链上有多个区块,每个区块包括区块头与区块体。区块头中主要包括版本号、前一区块哈希值、时间戳、随机数、目标哈希、默克尔根;区块体中是通过默克尔树记录的账本信息。

这个主要是展示的区块链原理的技术架构,接下来,主要介绍组织架构及层级。

二、早期的区块链架构

区块链技术刚提出的时候,在架构上...

区块链系统架构图_区块链模型架构

weixin_39636691的博客

12-21

3877

一般说来,区块链系统由数据层、网络层、共识层、激励层、合约层和应用层组成。其中,数据层封装了底层数据区块以及相关的数据加密和时间戳等技术;网络层则包括分布式组网机制、数据传播机制和数据验证机制等;共识层主要封装网络节点的各类共识算法;激励层将经济因素集成到区块链技术体系中来,主要包括经济激励的发行机制和分配机制等;合约层主要封装各类脚本、算法和智能合约,是区块链可编程特性的基础;应用层则封装了区块...

2021年系统架构复习笔记(按章节).docx

03-18

复习笔记涵盖了近10年架构师考试历年真题所有知识点,并补充了XS培训班辅导资料内容,适合有一定基础但没有太多时间去翻阅教材、总结归纳的同学,帮你快速获得通过考试所需的知识储备。

考研初试408《数据结构》详细笔记

03-30

考研自用笔记,根据网课视频等详细做的笔记。内容为考研初试408《数据结构》的笔记,十分详细,文字笔记+配图说明,一刷、二刷、三刷都很适用,建议结合课本配套食用。

加油加油,在座各位都是研究生!! o((>ω< ))o

Java数据结构学习笔记

12-18

Java数据结构学习笔记

《区块链原理、架构及应用》读书笔记一

01-08

区块链主要有三大关键技术:区块链加密技术,数据存储结构,共识机制。 一、区块链加密技术 从计算机科学角度看,区块链是一种分布式数据库,不同的节点拥有相同的数据记录,包含经节点确认的数据信息的区块从后...

软考高级系统架构设计师学习笔记及思维导图

02-23

软考高级的科目系统架构设计师考试,对所有知识点做了整理。 学习时需参考官方教材对照,本资料中只是将关键知识点提炼整理了一遍。 包括系统规划、系统分析、设计模式、数据库系统、计算机网络、性能评价、开发方法...

数据结构学习笔记.zip

最新发布

12-30

笔记:详细且系统的笔记,涵盖了数据结构的各个方面,从基础概念到复杂的数据结构如堆、B树等。这些笔记有助于你系统地复习和学习数据结构。 相关书籍推荐:为了更深入地理解数据结构,我们推荐了几本经典的教材和...

【笔记】分布式网络与分布式账本

time-space的博客

02-24

4399

一、分布式网络P2P的概念

1.类型与概念

  现实网络模式中,主要存在三种模式,分别是中心化、分布式与去中心化。

  分布式网络,作为区块链的底层公有链,是种分布式对等网络(P2P),每个网络节点都是平等的,没有哪个节点处于中心地位或者对其他节点具有控制、管理权限,所以每个结点之间的关系都是对等的,故又称为“对等网络”。 在此网络中的参与者既是资源、服务和内容的提供者,又是资源、服务和内容的获取...

考研高分笔记数据结构

08-22

《考研高分笔记 数据结构》是《高分笔记系列书籍》之一,旨在辅导计算机考研学生学习和理解数据结构。这本书于2010年夏天诞生,由一群考生合作完成的。它的主要目的是帮助考生系统地掌握数据结构的知识,并提供一些高分答题技巧和解题思路。这本书的内容包括数据结构的基本概念、线性表、栈和队列、树和图、排序和查找等内容。它通过清晰的讲解和丰富的例题,帮助考生深入理解和掌握数据结构的核心知识点,提高解题能力和应试水平。1

#### 引用[.reference_title]

- *1* [数据结构高分笔记](https://download.csdn.net/download/xiangliaojie/10707786)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]

[ .reference_list ]

“相关推荐”对你有帮助么?

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

Time-space

CSDN认证博客专家

CSDN认证企业博客

码龄8年

阿里巴巴本地生活

140

原创

3万+

周排名

206万+

总排名

35万+

访问

等级

4843

积分

277

粉丝

427

获赞

55

评论

2232

收藏

私信

关注

热门文章

【笔记】AOE网与关键路径

46450

【干货】软件安装报“不能注册DLL/OCX:RegSvr32失败;退出代码Ox3”

16785

【精华】安卓开发学习路线规划

16348

【练习】舞伴配对问题

12475

【笔记】CPU的结构和功能(一)

11580

分类专栏

区块链

9篇

设计模式

2篇

后端开发

8篇

密码学

2篇

分布式系统

3篇

数据结构

42篇

计算机组成原理

16篇

Android开发

14篇

数据结构

24篇

组成原理

16篇

技术干货

6篇

编程语言

2篇

基础整理

19篇

软件工程

4篇

随笔小练

22篇

平面设计

5篇

材料科学

2篇

其他杂谈

1篇

最新评论

【精华】安卓开发学习路线规划

chargez:

老哥有推荐的视频吗?只有书吗

【笔记】区块链的系统架构、数据结构及运行机制

haoma2772:

讲的很棒

【笔记】AOE网与关键路径

LCIWalt:

在有多条关键路径的情况下

【笔记】AOE网与关键路径

LCIWalt:

代码有误

会出现没有路径也作为路径的情况

【笔记】AOE网与关键路径

Lqh154157:

可以正常运行吗

您愿意向朋友推荐“博客详情页”吗?

强烈不推荐

不推荐

一般般

推荐

强烈推荐

提交

最新文章

【笔记】工厂方法模式

【笔记】单例模式

【精华】安卓开发学习路线规划

2020年27篇

2019年18篇

2018年33篇

2017年64篇

目录

目录

分类专栏

区块链

9篇

设计模式

2篇

后端开发

8篇

密码学

2篇

分布式系统

3篇

数据结构

42篇

计算机组成原理

16篇

Android开发

14篇

数据结构

24篇

组成原理

16篇

技术干货

6篇

编程语言

2篇

基础整理

19篇

软件工程

4篇

随笔小练

22篇

平面设计

5篇

材料科学

2篇

其他杂谈

1篇

目录

评论 1

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

区块链_区块链技术架构_区块链典型技术架构-华为云

区块链_区块链技术架构_区块链典型技术架构-华为云

检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn 不再显示此消息 中国站 中国站 简体中文 International English Bahasa Indonesia Español Português Türkçe عربي ไทย 简体中文 日本語 Europe English Deutsch Español Français 华为云App 活动 产品 解决方案 定价 云商店 合作伙伴 开发者 支持与服务 了解华为云 清空最近搜索 热门搜索 云耀云服务器L实例 免费试用 云服务器 域名 云速建站 “”的所有结果 文档 备案 控制台 账号中心 费用与成本 待支付订单 待续费产品 未读消息 工单管理 管理控制台 注册 登录 登录 注册 购物车 admin 帐号中心 未实名认证 已实名认证 费用与成本 待支付订单0 待续费产品0 未读消息0 伙伴中心 云商店买家中心 云商店卖家中心 工单管理 开发者个人中心 个性化推荐管理 管理控制台 admin 退出登录 取消 清空最近搜索 热门搜索 云耀云服务器L实例 免费试用 云服务器 域名 云速建站

区块链典型技术架构

区块链典型技术架构

区块链技术发展到今天,面向不同的业务场景和技术需求,涌现出了非常多的链,每种链根据自身的需要发展出了不同的架构,本章介绍其中区块链架构中比较经典的六层架构。

区块链技术发展到今天,面向不同的业务场景和技术需求,涌现出了非常多的链,每种链根据自身的需要发展出了不同的架构,本章介绍其中区块链架构中比较经典的六层架构。

立即购买

帮助文档

什么是区块链?

根据工信部指导发布的《区块链技术和应用发展白皮书》的解释:狭义的讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证不可篡改和不可伪造的分布式账本。广义来讲,区块链技术是利用链式数据结构来验证和存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全性、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算模式。顾名思义,区块链(blockchain)是一种数据以区块(block)为单位产生和存储,并按照时间顺序首尾相连形成链式(chain)结构,同时通过密码学保证不可篡改、不可伪造及数据传输访问安全的去中心化分布式账本。区块链中所谓的账本,其作用和现实生活中的账本基本一致,按照一定的格式记录流水等交易信息。特别是在各种加密数字货币中,交易内容就是各种转账信息。只是随着区块链的发展,记录的交易内容由各种转账记录扩展至各个领域的数据。比如,在供应链溯源应用中,区块中记录了供应链各个环节中物品所处的责任方、位置等信息。区块链技术是一个技术合集,它包含共享账本、共识算法、安全隐私和智能合约等技术组成,具有多中心化、共识可信、不可篡改、可追溯等特性。

区块链典型技术架构

区块链模型自底向上分为基础设施层、数据层、网络层、共识层、合约层以及应用层。其中数据层、网络层、共识层是区块链的核心层级,是实现区块链的基础保障,缺一不可。基础设施层是区块链的构建基础,也是必不可少的。合约层是扩展层级,区块链的可编程性质主要通过该层来实现。应用层主要实现各种应用场景,并和具体的业务进行对接。

区块链的六层架构

1、区块链典型技术架构——应用层

区块链的应用层主要负责适配区块链的各类应用场景,为用户提供各种服务和应用,同时我们看到越来越多不同类型的客户端和工具现已支持区块链框架。客户端应用程序通常通过触发交易来启动整个业务工作流。指定节点调用智能合约层功能继续向底层执行相应的功能。客户端应用程序可以使用任何软件编程语言来实现,主流的有Java、Golang、Python等,并且可以运行在各种操作系统中。应用程序既可以使用任何区块链框架实现所提供的命令行接口(CLI)工具,也可以使用特定编程语言的软件开发工具包(SDK)与网络上的节点通信。用户在开发客户端时,只需要关注自己的业务逻辑,调用相应接口封装并发送消息即可,不需要关注底层消息发送接收的具体过程。在以容器方式和虚拟机方式承载的智能合约诞生之前,区块链的应用十分有限,主要集中在加密数字货币上。随着区块链技术的演进,早已超越其传统的基于加密数字货币的网络形象,同时智能合约的发展为应用层的丰富带来了福音。尽管区块链现在还没有完全成熟,但是近几年已经有一大批的应用浮现。区块链应用涉及金融、供应链、医疗、教育、政务等领域,在可预期的未来,区块链应用必定会像PC和手机应用一样普遍。

2、区块链典型技术架构——合约层

智能合约(Smart Contract)并不是区块链首创的概念。早在1993年,跨领域学者Nick Szabo就提出了智能合约的概念,他对智能合约的定义为: “一个智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议。”简单来说,智能合约是一种在满足一定条件时,就自动执行的计算机程序。例如,自动售货机就可以视为一个智能合约系统,客户需要选择商品,并完成支付,这两个条件都满足后,售货机就会自动吐出货物。合约在生活中处处可见,如租赁合同、借条,等等。传统合约依靠法律进行背书,当产生违约及纠纷时,往往需要借助法院等政府机构的力量进行裁决。智能合约不仅仅是将传统的合约电子化,它的真正意义在于,革命性地将传统合约的背书执行由法律替换成了代码。俗话说“规则是死的,人是活的”,程序作为一种运行在计算机上的规则,意味着它会被严格执行。区块链系统中的合约层主要负责智能合约的功能和实现。简单来说,智能合约是一段在区块链上存储、验证和执行的代码,被认为是第二代区块链的技术核心。它是区块链从虚拟货币、金融交易协议到通用工具发展的必然结果。目前几乎所有的区块链技术公司都已在其产品中支持智能合约产品,例如,以太坊基于虚拟机的智能合约平台、基于Bitcoin区块链的RSK平台,IBM 公司提出的企业级Hyperledger Fabric平台等,这些产品的推出极大地丰富了智能合约技术的内涵和范围,为区块链技术在不同领域的现实应用奠定了基础,也代表了区块链未来发展的方向。以Fabric为例,智能合约模块主要完成智能合约的生命周期管理,以及交易背书过程。智能合约生命周期管理包括智能合约的安装、启动、更新、销毁。交易背书过程包括合约服务调用、状态数据访问以及交易构造等关键技术功能。智能合约不仅是区块链上的一段可执行代码,而且是封装了智能合约语言、运行环境以及与系统账本直接交互的相关过程方法的一个完整的计算系统,且支持被应用程序调用,被调用时智能合约会自动执行合约功能。智能合约可以操作账本中的状态,这些状态记录着与业务相关的数据。区块链系统可以部署多个智能合约,应用程序通过名称、版本号来指定具体调用哪个智能合约。

3、区块链典型技术架构——共识层

区块链系统是一个高度去中心化的系统,各节点需要维护相同的账本数据。但在现实网络环境中,节点数据的一致性面对诸多威胁: 网络消息可能存在阻塞、丢包或重传,节点运行可能宕机或错误,同时系统面临“女巫攻击”“双花攻击”等潜在风险。如何在如此复杂的网络环境中保证各节点数据的一致性,是共识算法需要解决的主要问题。共识层是区块链系统的核心,主要封装了区块链节点间协同运行的各类共识算法,并利用这些共识算法实现高安全性、去中心化、去信任化等特性。首先,共识算法需具备高安全性,即使在存在节点崩溃甚至恶意攻击风险的网络中,仍然需要确保正常节点之间就特定数据达成一致; 其次,共识算法是去中心化的,支持多个节点组成分布式共识集群,共同参与交易的验证与执行,无须依赖中心化的第三方就能正常运转; 最后,共识算法是去信任化的,共识节点之间并不需要彼此信任,而是只要参与共同的共识机制,就能最终达成对账本的一致认知。共识层承担着保障分布式节点对特定交易达成一致的使命,为此,共识层需要承担交易验证、排序,区块生成、验证的功能。区块链系统运行时,会收到来自多个客户端的交易请求,共识层首先要对海量交易安排确定的执行顺序,确保任意节点都能按相同顺序执行交易。同时,为了提高共识效率,通常共识层会将一批交易数据进行打包,从而批量进行共识,一批打包好的交易数据会被存储到区块结构中,在共识集群内广播。当其他共识层节点收到区块后,需要对区块的合法性与其中众多交易的合法性进行独立验证,对于验证不合法的区块或交易,节点有权拒绝执行,以抵御可能存在的恶意攻击;如果区块与交易在该节点校验通过,共识层会按指定的交易顺序请求合约层对交易进行执行,并将执行结果发送到数据层,发起数据更新的请求,最终会由数据层完成交易结果的持久化。一般而言,为了降低系统的复杂度,共识过程中通常会由特定节点承担交易排序与区块生成的职能,这些特定节点往往被称为“记账节点”或“出块节点”。这些特定节点可能由竞争、投票、随机指定等不同策略产生,而这些策略往往正是决定区块链共识层执行效率、公平性乃至安全性的核心。在进行共识层的设计时,首先需要重点考虑的是共识协议的选择。当前业界的共识协议种类繁多,在安全假设、性能和可扩展性等方面各有侧重。例如,在公有链场景中,由于节点可自由加入、退出,无须进行身份认证,因此共识算法大多是以证明类的算法为主,共识的效率较低,共识结果往往是非确定性的,为了吸引节点参与网络交易的见证,通常还会设置激励机制。而在联盟链的场景中,以多中心化的应用场景为主,因此在共识算法的选择上更加关注性能,通常选择经典分布式共识中的拜占庭容错共识算法,但在共识节点的扩展性方面则不那么友好。其次,为了实现区块链系统的可持续演进,良好的工程设计非常重要。例如,为提升系统的可维护性,可以考虑组件化设计,共识协议与区块链系统松耦合,进而实现共识协议的插拔式替换。

4、区块链典型技术架构——网络层

与TCP/IP定义的网络层不同,在区块链系统中,网络层实现了分布式组网机制、消息传播协议和数据验证机制。在绝大多数区块链系统中,网络层都采用了点对点组网的方式,区块链中节点可以自由地组网,任意两个节点之间通过消息传播协议实现消息和交易的传播。每个节点都承担了网络路由、验证区块数据以及传播区块数据的功能。经过一段时间后,在整个区块链网络中的每个节点都具有同样的数据。P2P组网方式有如下特点:• 节点之间采用扁平化拓扑结构进行连接,不存在任何中心化的节点和层级结构。• 节点的地位相互平等,每个节点均承担了节点发现、网络路由、传播区块、验证区块等功能。数据通过消息传播协议在区块链网络中传播。不同的区块链系统采用的消息传播协议不同,例如,比特币系统和Fabric系统采用了Gossip协议,以太坊系统采用了Kademlia协议。网络中的每个节点都会进行消息监听,当发现新数据后会使用数据校验机制进行校验,并根据校验通过与否来决定是否继续传播。数据验证机制保证传播的数据是可验证的。不同的区块链系统,校验的数据内容也略有不同。通常来说,会对数据结构、数据长度、共识证明、数字签名和时间戳等字段进行校验。

5、区块链典型技术架构——数据层

数据层主要描述区块链的物理形式,是最底层的技术。本节主要从数据结构、数据存储方面进行总体介绍。

1)数据结构在数据结构的设计上,现有的区块链平台借鉴了Haber与Stornetta的研究工作,基于时间戳、哈希、数字签名等技术,为了实现数据的不可篡改性,形成以区块为单位的链式结构。不同区块链平台在数据结构的具体细节上虽有差异,但整体上基本相同。以比特币为例,每个区块由区块头和区块体两部分组成,区块体中存放了自前一区块之后发生的多笔交易; 区块头中存放了前块哈希(PreBlockHash)、随机数(Nonce)、默克尔根(Merkle Root)等。

2)数据存储在数据存储的设计上,由于区块链式结构数据需要在磁盘上进行持久化,通常会以文件形式存储,也有部分区块链系统使用数据库形式存储。文件存储更方便以日志形式的追加操作,数据库存储则更容易实现增删改查功能。比特币、Fabric的区块链式结构以文件形式存储,其索引数据存储在LevelDB数据库; 以太坊的区块链式结构与索引都存储在LevelDB数据库。除了存储区块链式结构数据,以太坊、Fabric还都基于LevelDB 构建了状态数据库(World State)以存储账户余额或业务状态数据。在基于账户模型的区块链平台中,交易数据被打包进区块且经共识算法确认后,先追加写入区块链式结构,而后写入状态数据库。当新的节点加入区块链网络时,为了和已有节点数据保持一致,新节点需要同步区块链式结构数据以达到全网区块的高度,同时,状态数据库也需和全网同步。为了让更多常规计算能力的个人计算机节点加入区块链网络,以充分实现去中心化的理念,比特币和以太坊都选择了LevelDB数据库存储索引或状态数据,因为LevelDB是轻量级的单机数据库,无须安装部署且写入性能高效。但是基于 LevelDB数据库的架构方案显然无法满足企业级的业务需求(如高并发访问、Non-Key查询、复杂查询等),因此,很多区块链系统平台提供了插件化的数据访问机制,其除了支持LevelDB数据库,还额外支持CouchDB分布式数据库、SQL等关系型数据库等。

6、区块链典型技术架构——基础设施层

基础设施层为应用层、合约层、共识层、网络层和数据层提供其所需的计算、存储和网络等资源。为了使基础设施层满足多租户、弹性、稳定可靠和安全等需求,技术上必须进行资源的池化管理。即通过虚拟化技术将资源虚拟化形成资源池,然后根据用户的需求弹性分配,同时确保安全和隔离。根据资源类型的不同,基础设施层主要进行计算的虚拟化、存储的虚拟化和网络的虚拟化。

1)计算资源计算资源为区块链系统的运行提供数据处理能力。传统的计算资源设备主要为x86处理器和ARM 处理器。而在当前业界主流的区块链系统中,一种新的可为代码提供更安全的可信执行环境TEE得到了越来越广泛的应用。TEE全称Trusted Execution Environment,即可信执行环境。它是CPU 上的一块区域。这个区域的作用是给数据和代码执行提供一个更安全的空间,并保证它们的机密性和完整性。具体的TEE实现技术有Intel的SGX和ARM 的TrustZone。另外,GPU 在数据并行处理方面和轻量级运算方面有着强大的能力,而区块链系统的交易处理过程中存在着大量的加验签和加解密处理,正是符合这两方面特点的场景,因此也得到了一定的应用。计算的虚拟化技术相对已经比较成熟了,主流的虚拟化软件有XEN、KVM、VMware等,但是在性能、稳定性方面还有所欠缺,有待于进一步的优化和完善。

2)存储资源存储资源为区块链系统的运行提供数据存储服务。区块链系统需要存储的数据主要是账本数据,账本数据类似于日志,以一定的顺序记录着系统发生的每一笔交易,以文件的形式存储在磁盘上。在部分区块链系统中,为了便于数据的快速查询,系统还维护了一份状态数据,通常通过数据库的方式进行存储。存储的虚拟化当下还比较稚嫩,业界还没有一个比较成熟的开源系统。存储虚拟化主要分文件型存储虚拟化和块设备存储虚拟化。文件型存储的实现基本都大同小异,主要受GFS的思路启发具体实现的,如Openstack的Swift。而块设备存储则百花齐放,Nova Volume、盛大云和UCloud都各自实现了块设备存储。此外,最近业界非常热门的SDS(软件定义存储),本质上也是一种存储虚拟化。

3)网络资源网络资源为区块链系统的运行提供数据传输服务。区块链系统是天然的分布式系统,节点之间不可避免地要进行数据传输,如交易的发送、共识协议的运行以及区块的广播与同步等,都依赖网络资源。为了保证节点之间能够高效、安全地进行通信,节点之间的数据传输需要具备足够的带宽和较小的时延。光纤通信的普及以及5G 的到来,很大程度上解决了带宽不足的问题。网络的虚拟化旨在一个物理网络资源上创建出多个虚拟子网,从而实现对网络资源更方便的管理。简单来讲,就是将一个大的物理网络分割成多个逻辑子网,各个逻辑子网之间相互独立,实现多租户隔离,从而实现网络的弹性伸缩,以提高网络资源利用率。结合网络切片技术,一方面,大幅提高了网络资源利用率,实现弹性的网络; 同时也为数据传输的服务质量(Quality of Service,QoS)保证提供了有力支撑。当下最常见的网络虚拟化技术方案是SDN(软件定义网络),SDN实现了物理网络的管理,网络资源的虚拟化和网络隔离,使得网络虚拟化的实现更加方便和灵活。

区块链典型技术架构——跨层功能

跨层功能提供了跨越多个层次的功能组件,根据对外提供的功能,大体可分为开发、运营、安全、治理与审计几大类别。开发组件主要是为了支撑区块链服务开发方的开发活动,包括区块链服务的集成开发环境、编译构建工具、测试验证工具和相应的环境。集成开发环境提供了用于区块链系统、智能合约及相关应用的开发、调试和部署等服务。编译构建工具用于构建可发布的软件包,该软件包既包含用于服务实现的软件,也包含相关的配置元数据和配置脚本。测试验证工具能对区块链的所有服务进行测试,并生成相应的测试报告,帮助开发者提前发现问题并及时修复。在当前业界大多数区块链平台中,都提供了在线可视化的配套工具集。运营组件主要包括与区块链操作相关的管理功能,用于管理和控制提供给用户使用的区块链服务,包括成员管理、策略管理、异常管理、跨链服务管理等。成员管理主要用于联盟链场景,通常负责管理成员真实身份和链上身份的对应关系,设置相关数据的访问权限。策略管理提供了区块链服务的定义、更新和访问策略以及针对这些策略的管理能力,包括用于区块链服务本身及其使用的业务、技术、安全、隐私和认证等策略。异常管理提供了系统的运行监控能力,用于及时发现问题,通过分析,及时处理问题并产生异常报告。跨链服务管理提供了区块链系统之间、区块链与业务系统之间互联互通的连接和访问能力,包括系统的注册、服务请求和连接、身份认证等功能。安全组件是区块链的重要基础,为区块链的各层功能以及层与层之间的数据通信提供机密性、完整性、可用性和隐私保护的基本功能。安全组件提供身份与认证管理、授权管理、安全策略管理、隐私保护等功能。身份与认证管理提供用户身份的确认能力,确定用户是否具有对某种资源或某一数据的访问权限,进而有效地保证区块链系统的访问控制策略能够得到有效执行。授权管理和安全策略管理负责对用户访问某种资源授予权限,制定某一安全区域内的访问规则。隐私保护功能主要是保护区块链应用中用户身份和交易内容等敏感信息不被泄露或非法获取,相关信息仅在获得授权后才能被访问。治理和审计组件是根据区块链服务关联方的治理要求,使区块链服务符合可治理与可审计的特性集合。治理组件需保证系统满足治理机构对区块链服务的环境、系统、可用性、灾备、系统运维、所支持业务的合规性等方面的规定,支持通过事前准入控制、事中权限控制、事后追溯等技术手段实现治理目标,保证记录不可篡改、可追溯与可稽核。审计组件实现区块链网络的审计内控、责任鉴定和事件追溯等方面的要求,以有效的技术手段,配合业务所属的行业标准进行精确的审计管理。

区块链相关职业培训

层次化培训体系,助您提升专业技能,成就职场新机遇

活动规则

活动对象:华为云电销客户及渠道伙伴客户可参与消费满送活动,其他客户参与前请咨询客户经理活动时间: 2020年8月12日-2020年9月11日活动期间,华为云用户通过活动页面购买云服务,或使用上云礼包优惠券在华为云官网新购云服务,累计新购实付付费金额达到一定额度,可兑换相应的实物礼品。活动优惠券可在本活动页面中“上云礼包”等方式获取,在华为云官网直接购买(未使用年中云钜惠活动优惠券)或参与其他活动的订单付费金额不计入统计范围内;活动对象:华为云电销客户及渠道伙伴客户可参与消费满送活动,其他客户参与前请咨询客户经理活动对象:华为云电销客户及渠道伙伴客户可参与消费满送活动,其他客户参与前请咨询客户经理活动时间: 2020年8月12日-2020年9月11日活动期间,华为云用户通过活动页面购买云服务,或使用上云礼包优惠券在华为云官网新购云服务,累计新购实付付费金额达到一定额度,可兑换相应的实物礼品。活动优惠券可在本活动页面中上云礼包123等方式获取,在华为云官网直接购买(未使用年中云钜惠活动优惠券)或参与其他活动的订单付费金额不计入统计范围内;活动对象:华为云电销客户及渠道伙伴客户可参与消费满送活动,其他客户参与前请咨询客户经理活动对象:华为云电销客户及渠道伙伴客户可参与消费满送活动,其他客户参与前请咨询客户经理活动时间: 2020年8月12日-2020年9月11日活动期间,华为云用户通过活动页面购买云服务,或使用上云礼包优惠券在华为云官网新购云服务,累计新购实付付费金额达到一定额度,可兑换相应的实物礼品。活动优惠券可在本活动页面中“上云礼包”等方式获取,在华为云官网直接购买(未使用年中云钜惠活动优惠券)或参与其他活动的订单付费金额不计入统计范围内;活动对象:华为云电销客户及渠道伙伴客户可参与消费满送活动,其他客户参与前请咨询客户经理

确定

华为云区块链培训服务

面向不同需求的政府与企业中高层、CXO、企业从业人员、院校学生、开发人员等客户提供区块链技术培训、区块链高研班、区块链政务沙龙等系列培训

了解详情

区块链专家服务

提供专属区块链开发实践指导和咨询,以“场景分析,技术培训,架构设计,系统开发和系统上线”全面指导为设计思路,协助客户高效、低成本的上线高质量的区块链应用系统

了解详情

区块链更多推荐

区块链入门

了解区块链更多信息

区块链入门

区块链白皮书

区块链应用场景

区块链优势

区块链功能

区块链基本概念

区块链关键核心技术

区块链优惠

区块链实践

区块链平台搭建及问题解决

区块链特征

搭建区块链系统

区块链常见问题

区块链最佳实践

区块链开发指南

区块链API参考

区块链通道管理

区块链实例部署

数字资产链学习

学习区块链应用于数字资产相关的技术和内容

数字资产入门

数字资产链用户指南

数字资产链SDK参考

数字资产链优势

数字资产链功能

数字资产标识的用途

数字资产标准协议

数字资产链计费问题

7*24 多渠道服务支持 备案 提供免费备案服务 专业服务 云业务全流程支持 退订 享无忧退订服务 建议反馈 优化改进建议 热门产品 云服务器 云速邮箱 域名注册 云速建站 华为云App 售前咨询热线 950808转1 技术服务咨询 售前咨询 sales@huaweicloud.com 备案服务 beian@huaweicloud.com 云商店咨询 partner@huaweicloud.com 下载华为云App 关注我们 关注华为云 4000 955 988 950808 华为云微信 扫描二维码 华为云微博 扫描二维码 华为云App 扫描下载华为云App 售前咨询:950808转1 法律声明 隐私政策 长按/截图保存,微信识别二维码或者关注公众号“华为云” 关于华为云 了解华为云 客户案例 信任中心 法律协议 新闻报道 华为云直播 热门产品 免费体验中心 云服务器 盘古大模型 SSL证书 华为云WeLink 云速建站 支持与服务 自助服务 服务公告 支持计划 智能客服 联系我们 举报中心 实用工具 文字识别 漏洞扫描 域名注册 华为云会议 定制建站 云服务健康看板 友情链接 华为官网 华为消费者业务 华为开发者联盟 华为企业业务 华为商城 黄大年茶思屋 法律声明 隐私政策 ©2024 Huaweicloud.com 版权所有 黔ICP备20004760号-14 苏B2-20130048号 A2.B1.B2-20070312 域名注册服务机构许可:黔D3-20230001 代理域名注册服务机构:新网、西数 电子营业执照 贵公网安备 52990002000093号

【笔记】区块链的系统架构、数据结构及运行机制_区块链架构图-CSDN博客

>

【笔记】区块链的系统架构、数据结构及运行机制_区块链架构图-CSDN博客

【笔记】区块链的系统架构、数据结构及运行机制

最新推荐文章于 2022-01-14 18:03:19 发布

Time-space

最新推荐文章于 2022-01-14 18:03:19 发布

阅读量1w

收藏

50

点赞数

6

分类专栏:

区块链

文章标签:

区块链

区块链系统

区块链系统架构

区块链的演化

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/cbwem/article/details/104443267

版权

区块链

专栏收录该内容

9 篇文章

1 订阅

订阅专栏

文章目录

一、区块链的系统框架1.区块链的系统架构与运行2.数据层、网络层与共识层3.激励层、合约层与应用层

二、区块的概念和识别1.区块与区块头2.区块的识别

三、创世区块与区块的连接1.创世区块2.区块的连接

四、区块链的数据结构1.区块链的结构基础2.哈希值、梅克尔根等数据及作用3.难度确认、运行及其作用4.时间戳、随机数及其作用

五、区块链的工作流程与机制1.步骤与防止分叉2.安全、透明与不可篡改的系统机制

六、从区块链1.0到区块链3.0的演化1.区块链的进化2.区块链1.03.区块链2.04.区块链3.0

一、区块链的系统框架

1.区块链的系统架构与运行

  区块链的系统架构,主要是由数据层、网络层与共识层构成的底层网络,由数字货币、智能合约与其他“去中心化”组织等构成的应用层。下图为区块链的系统架构图。   区块链是一个去中心的、分散式的网络账本,所以其系统架构也符合网络的基本特点。该网络账本构成一个系统,该系统最底层、最基础的是数据结构。这个结构就是将信息和数据采用一定的方式、格式组织起来,输入到区块链系统中并由其处理。当统一方式的数据输入后,网络层便开始连链接,在全网的节点之中进行广播、验证,然后在共识层中由全网达成共识而构建起区块。所有区块进行“组装”,最终构建起各种系统产品的运行平台,如公有链、私有链与联盟链等。而数字货币、智能合约、去中心化组织等都是区块链平台上运行的产品。

  在区块链的系统架构中,各个层次以交易为中心构建起一个完整的相互关联的循环体系,这一循环模式是这样的:   首先,应用层的数字货币、智能合约等产品对于底层网络来说,传输的全是数据,即应用层相当于数据层的数据输入源。这些数据必须进入数据层,按照区块链的格式进行封装。   其次,在数据封装完成后,就进入分布式(P2P)网络进行广播,由全网节点通过一定机制进行确认。   最后,当全网达成共识之后,区块构建完成并连接到主链之上,完成一次完整交易的流程,并开始下一次交易的循环。

  这一循环过程,从技术角度讲,区块链中的区块是一种记录交易的数据结构,反映了一笔交易的资金流向。系统中已经达成交易的区块连接在一起形成了一条主链,所有参与计算的节点都记录了主链的信息,区块所承载的任务数据具体包括:交易双方私钥、交易数量、电子货币数字签名等。前一个区块形成的散列用来将区块连接起来,实现过往交易的顺序排列。随机数是交易达成的核心,所有“矿工”节点竞争计算随机数,最快得到答案的节点生成一个新的区块,并广播到所有节点进行更新,如此完成一笔交易,然后开始新的循环。

2.数据层、网络层与共识层

  数据层封装了底层数据区块的链式结构以及相关的非对称公私钥数据加密、时间戳等技术,这是整个区块链技术中最底层的数据结构。

  网络层包括分布式组网机制、数据传播机制和数据验证机制等,由于采用了完全的P2P组网技术,意味着区块链具有自动组网功能。

  共识层主要包括封装网络节点的各类共识机制算法。共识机制算法是区块领导核心技术,决定了到底有谁来记账,而且记账者选择的方式将会影响整个系统的安全性和可靠性。知名的有**工作量证明机制(PoW)、权益证明机制(PoS)、委托权益证明机制(DPoS)**等。

3.激励层、合约层与应用层

  激励层将经济因素集成到区块链技术体系中,主要包括经济激励的发行机制和分配机制,该层主要出现在公有链、私有链中。激励机制往往也是一种博弈机制,让更多节点愿意遵守规则。

  合约层主要封装各类脚本、算法和智能合约,是区块链可编程特性的基础。

  应用层封装了区块链的各种应用场景和案例。 在该模型中,基于时间戳的链式区块结构、分布式节点共识机制、基于共识机制的经济激励和灵活可编程的智能合约是区块链技术最具代表性的和创新点。

二、区块的概念和识别

1.区块与区块头

  区块是区块链的基本组成单元,它由一个包含元数据的区块头和紧跟其后的构成区块主体的一系列交易组成。 区块的基本数据结构如下表所示。   区块头由三组区块元数据组成。 第一组元数据引用父区块哈希值的数据,这组元数据用于将该区块与区块链中前一区块相连接。第二组元数据,即难度、时间戳和随机数(Nonce),其与挖矿竞争相关。第三组元数据是梅克尔树根,一种用来有效地总结区块中所有交易的数据结构。区块头的数据结构如下表所示。

2.区块的识别

  区块可以通过两种方式被识别:区块哈希值或区块高度。   区块主标识符是它的加密哈希值,通过安全散列算法-256(SHA-256)对区块头进行二次哈希计算而得到的数字指纹,所产生的“32字节”哈希值被称为区块哈希值。区块哈希值可以唯一、明确地标识一个区块,并且任何节点通过简单地对区块头进行哈希计算都可以独立地获取该区块哈希值。   区块哈希值可能会作为区块元数据的一部分被存储在一个独立的数据库表中,以便于索引以及更快地在在磁盘中检索区块。

  区块在区块链中的位置即区块高度,区块高度可以识别区块。   区块高度和区块哈希值不同之处在于,一个单一的区块有一个固定、明确的区块高度,但是两个或两个以上的区块也可能有相同的区块高度,并在区块链里争夺同一位置。一个区块的区块哈希值能唯一地识别一个特定的区块,但一个区块高度却不一定能识别出唯一的区块。

三、创世区块与区块的连接

1.创世区块

  创世区块是区块链里面所有区块的共同祖先,意味着从任一区块循链向后回溯,最终都将到达创世区块。 每一个节点都“知道”创世区块的哈希值、结构、被创建的时间和里面的交易。   因此,每个节点都把该区块作为区块链的首区块,从而构建了一条安全的、可信的区块链根,每一个节点都包含创世区块,永远不会被改变。

2.区块的连接

  当某个节点接收到传入区块时,它会验证这些区块,然后链接到现有的区块链上。为了建立这个链接,该节点将检查传入的区块头并寻找该区块的“父区块哈希值”。   每个参与节点都可以保存整个区块链的副本,只要有参与节点存在,区块链数据就不会丢失。区块链上的每个区块都可以用来记录货币、股权、债券、数字签名、数字合约以及其他任何数字化内容。

四、区块链的数据结构

1.区块链的结构基础

  首先,区块链的数据结构是在SHA-256支持下实现的;其次,在区块对交易封装过程中,采用高效的梅克尔树算法,一步一步地将繁杂的信息进行归纳和简化;再次,为了保证区块的顺序链接,需要采用时间戳机制在区块中写入时间参数;最后,为了达成共识机制,并使全网参与的“挖矿”工作顺利进行,系统在PoW共识机制下采用了难度目标和随机数两种设计,保证系统在一个可靠的区间内运转。

2.哈希值、梅克尔根等数据及作用

  哈希算法将任意长度的二进制值映射为固定长度的较小二进制值,这个较小的二进制值称为哈希值。一段明文哪怕只更改一个字母,都将产生不同的哈希值。   哈希函数的单向、输出数据长度固定等特征使它可以生成消息或者数据,而且哈希算法和哈希值一般用于快速查找和加密算法。   哈希算法应用在区块中,既减小了区块存储的数据量,也不影响对数据的链接访问。

  每个数据区块包含区块头和区块体,区块头封装了当前版本号、前一区块哈希值、当前区块PoW要求的随机数(Nonce)、时间戳以及梅克尔根信息。区块体包括当前去看经过验证的、区块创建过程中生成的所有交易记录;这些记录就是通过梅克尔树的哈希过程生成唯一的梅克尔根后,并记入了区块头中。   梅克尔根,是指梅克尔树的根,因为梅克尔树在计算的过程中主要用到哈希算法,或称为梅克尔哈希树。

3.难度确认、运行及其作用

  工作量证明机制是一个可以让每个参与者参与交易验证的方式,为形成一个多方共同维护并共享同一份记录交易的账本,一个基于零信任基础、去中心化的P2P网络系统。   工作量证明是让任一参与节点花费时间和运算资源来计算一组数学公式的结果,一旦这个结果被计算出来,其他参与节点也可用相关的数学公式去验证这个值是否有效。进行PoW计算的过程也被形象地称为“挖矿”,参与节点被成称为“矿工”,计算过程如下:   每个区块的区块头包含许多固定值,只有随机数值为随机值,因此每个节点进行PoW计算时,通过不断替换这个随机值来让这个区块的区块头哈希值小于一个被设定好的难度目标值。当最接近难度目标值的哈希值产生后,该“矿工”可以向全网广播,如果同意时间获得超过51%节点的认可,意味着该“矿工”完成了一个新区块,可以将其链接到区块链上,其他“矿工”再以这一个区块为父区块进行下一个区块的运算。

  区块链中的难度值,是指节点要运算出低于难度目标值的哈希值,平均花费的时间,即平均要完成一次PoW计算所用的时间。   比特币的难度值是可以动态调整的,目前每产生2016个区块会调整一次难度值,以每10分钟产生一个区块估算,大约每两周会调整一次难度值。难度值的调整是由每个完整结点肚子自动发生的,每达到2016个区块后,所有结点都会按统一的公式自动调整难度值。

新难度值公式:新难度值 = 旧难度值 x (20160分钟 / 过去2016个区块花费时长)目标值(Target)的计算公式:目标值 = 最大目标值 / 难度值

  目标值的大小与难度值成反比。 比特币工作量证明的完成,是以“矿工”计算出来的区块哈希值小于目标值且最接近于目标值为判断标准。

4.时间戳、随机数及其作用

  时间戳,能表示一份数据在某个特定时间之前已经存在的、完整的、可验证的数据,其通常是一个字符序列,能够唯一地标识某一刻时间。 在区块链中采用了“unix”时间计数方式,由时间戳服务器为每一个区块加上的时间序列,记录了该区块的产生时间。   比特币挖矿的目标就是找到一个随机数,使在这个值下的区块头的SHA-256哈希值输出必须小于设定的难度值,“矿工”通过不停地变更区块头中的随机数,并对每次变更后的区块头做双重SHA-256运算,将结果只与当前网络的目标值作对比,如果小于目标值,则工作量证明完成,区块创建成功。

五、区块链的工作流程与机制

1.步骤与防止分叉

  区块链的工作步骤:

发送节点将新的数据记录向全网进行广播。接受节点对收到的数据记录信息尽心验证,如记录信息是否合法,通过检验后,数据记录将被纳入一个区块中。全网所有接受结点对区块执行共识算法,包括工作量证明、权益证明等。区块通过共识算法过程后被正式纳入区块链中存储,全网节点均表示接受该区块,新区块将以该区块链为基础进行延长。

  全网广播,实际上不需要让全网所有节点收到,只要大部分节点收到即可。对于那些没有收到的、丢失的区块,区块链系统是具有容错能力的,如果某节点没有收到特定区块,当节点发现自己缺失区块时,可以提出自己下载区块的请求。   节点始终都将最长的区块链视为正确的链,并持续以此为基础进行验证和延长。 当其中一条被证实为较长,那么在另一条分支链条上工作的节点将转换阵营,开始在较长的链条上工作,由此防止了区块链的分叉。

2.安全、透明与不可篡改的系统机制

  时间戳把数据区块的内容与数据区块本身联系起来,其重要意义在于其使数据区块形成了新的结构。这个新的结构使各个区块通过时间线有序地连接起来,形成了区块的链条,因此才成为区块链。   通过给数据记录印上时间标签,使每一条数据记录都具有唯一性,从而使数据记录本身在区块和区块上的位置进行精确定位且可回溯,也给其他的校验机制发挥协同作用提供了极大的便利性和确定性,使整个区块链网络能够确定性地验证某条数据记录是否真实。

  区块链网络是一个公开的、难以攻破的、不可篡改数据记录和制造虚假数据的诚实可信的系统。   关键技术包括两个方面:一是数据加密机制;二是共识算法。   在数据加密机制中,一方面要有一个私钥,另一方面要使用哈希算法等。   共识算法,是区块链中节点保持区块数据一致、准确的基础,主流共识算法包括工作量证明(PoW)、权益证明(PoS)、委托权益证明(DPoS)等。

六、从区块链1.0到区块链3.0的演化

1.区块链的进化

  划分方式1:   区块链1.0是以比特币为代表的数字货币应用,其场景包括之父、流通等;区块链2.0结合数字货币与智能合约,对金融领域的更广泛场景和流程进行优化的应用;区块链3.0则超出金融领域,旨在为各种行业提供去中心化解决方案。   划分方式2:   区块链1.0是可编程的数字货币;区块链2.0是可编程的智能合约;区块链3.0是可编程的社会治理。

2.区块链1.0

  区块链1.0主要是支撑虚拟货币的应用,包括转账、汇款、数字化支付以及加密货币,比特币就是区块链1.0的代表,也是最成功的数字货币。   区块链1.0的实质就是可编程的数字货币。 主要应用领域为“加密数字货币”,包括货币的发行机制、分配机制、币值调节机制等。   比特币可视为区块链首个在金融支付领域的应用,也是应用最广泛的公有区块链。

3.区块链2.0

  区块链2.0是可编程的智能合约。 主要应用领域为智能合约,智能合约能够令各方自动执行操作,结果由软件验证,而非人类扮演中介。   区块链2.0的典型应用包括:(1)股权、债券合约;(2)证券与金融合约;(3)糊住保险合约;(4)权利登记、转让;(5)博彩;(6)防伪;(7)物联网等。

4.区块链3.0

  区块链3.0可看作可编程的社会治理。   总体有两大类应用:

超越货币、经济、市场的公正性应用。超越货币、经济、市场的效率和协作。

  区块链3.0是价值互联网的内核。区块链能够对每一个互联网中代表价值的信息和字节进行产权确认、计量和存储,从而实现资产在区块链上可被追踪、控制和交易的目的。   价值互联网的核心是由区块链构造一个全球性的分布式记账系统,它不仅能够记录金融业的交易,而且几乎可以记录任何有价值的能以嗲吗形式进行表达的实物。实现信息的兹证明,不再依靠某个或第三人或机构获得信任或建立信用;实现信息的共享,通过解决信任的问题来提高整个系统的运作效率。

  区块链3.0的主要应用在社会治理领域,例如:

供应链自动化管理自动化采购智能化物联网应用产权登记虚拟资产兑换、转移

优惠劵

Time-space

关注

关注

6

点赞

50

收藏

觉得还不错?

一键收藏

知道了

1

评论

【笔记】区块链的系统架构、数据结构及运行机制

文章目录一、区块链的系统框架1.区块链的系统架构与运行2.数据层、网络层与共识层3.激励层、合约层与应用层二、区块的概念和识别1.区块与区块头2.区块的识别三、创世区块与区块的连接1.创世区块2.区块的连接四、区块链的数据结构1.区块链的结构基础2.哈希值、梅克尔根等数据及作用3.难度确认、运行及其作用4.时间戳、随机数及其作用五、区块链的工作流程与机制1.步骤与防止分叉2.安全、透明与不可篡改的...

复制链接

扫一扫

专栏目录

区块链-参考架构.pdf

07-27

区块链作为一种新兴的应用模式,在金融服务、供应链管理、文化娱乐、智能制造、社会公益和教育就业等领域有着广泛的应用价值。近几年来,区块链技术和应用正经历快速发展的过程。与此同时,国内国际上区块链领域的标准仍属空白,行业发展碎片化,行业应用存在一定的盲目性,不利于区块链的应用落地和技术发展。区块链的标准化有助于统一对区块链的认识,规范和指导区块链在各行业的应用,以及促进解决区块链的关键技术问题,对于区块链产业生态发展意义重大。目前,国内外标准化组织已将区块链标准化提上议事日程,开展了组织建设、标准预研等一系列工作,并初步取得了一定进展。

常见区块链基础架构

qq_41547320的博客

07-07

1万+

本文根据当前网络上大家熟知的公链和联盟链,介绍下区块链的整体架构。

一、基础原理架构技术层面,区块链的结构如下图所示。一条区块链上有多个区块,每个区块包括区块头与区块体。区块头中主要包括版本号、前一区块哈希值、时间戳、随机数、目标哈希、默克尔根;区块体中是通过默克尔树记录的账本信息。

这个主要是展示的区块链原理的技术架构,接下来,主要介绍组织架构及层级。二、早期的区块链架构

区块链技术刚提出的时候,在架构上通常被分为6层或者4层,6层的概念即数据层、网络层、共识层、激励层、合约层和应用层,下图为区块链技术早

1 条评论

您还未登录,请先

登录

后发表或查看评论

区块链技术之Fabric逻辑架构详解

phymat.nico的专栏

04-04

1211

一、架构图

该图出自区块链技术指南一书,架构解释也主要出自于本书,有兴趣的同学可以去自行找一找资源。

如图所示:fabric的底层主要由四种服务构成,分别是:身份服务、策略服务、区块链服务、智能合约服务。在这些基础服务之上,通过一些API、SDK、CLI为上层业务应用提供一些可以编程的接口服务。

二、服务详解

2.1身份服务

首先明确一点,fabric和比特币与以太坊的最大的区别在于其身份识别能力...

一文看懂区块链架构设计

热门推荐

lucky_greenegg的专栏

10-15

8万+

转自:http://www.8btc.com/ebook-blockchain

前言

区块链作为一种架构设计的实现,与基础语言或平台等差别较大。区块链是加密货币背后的技术,是当下与VR虚拟现实等比肩的热门技术之一,本身不是新技术,类似Ajax,可以说它是一种技术架构,所以我们从架构设计的角度谈谈区块链的技术实现。

无论你擅长什么编程语言,都能够参考这种设计去实现一款区块链

西安电子科技大学081201 计算机系统结构数据结构笔记.zip

03-25

西安电子科技大学081201 计算机系统结构数据结构笔记.zip

区块链知识整理之系统架构及各层功能

qq_39209117的博客

01-14

1万+

文章目录前言一、区块链技术基础模型和关键技术1.1系统架构1.1.1数据层二、使用步骤1.引入库2.读入数据总结

前言

本篇笔记是阅读区块链综述论文

[1] 袁勇,王飞跃. 区块链技术发展现状与展望_袁勇[J]. 自动化学报, 2016, 42(4): 481-494.

[2] 代闯闯,栾海晶,杨雪莹,等. 区块链技术研究综述[J]. 计算机科学, 2021(S2).

和查阅一些网络资料所作整理。

一、区块链技术基础模型和关键技术

比特币是由交易、共识协议和通信网络等技术组件所构成的一种去中心化的电子交

区块链的结构和原理

weixin_42419611的博客

11-03

1万+

区块链的结构和原理

文章目录区块链的结构和原理区块链原理区块链结构关于区块链的几个问题结语

区块链原理

区块链是一个链表,链表上存有交易信息,所有人共享同一个链表,因此它也是一个没有管理员的分布式数据库,即去中心化数据库,所有人都能加入这个数据库,并且可以读取任意块,也可以在区块链尾加入块,但无法修改已有块,新块加入后所有人的链表都将更新。采矿就是在链表中加入新块。

区块链结构

图 1:区块链的一个例子,它由连续的块序列组成

图 2:块结构

块由块头和块体组成:

块头包含:

Block versio

区块链架构有哪些?

XYlittlework的博客

06-11

1万+

本文将整理汇总目前常见的区块链各种架构,通过汇总分析,区块链的架构基本都大同小异,前面详细介绍几个,后面的就不重复介绍了。

一、区块链原理架构

技术层面,区块链的结构如下图所示。一条区块链上有多个区块,每个区块包括区块头与区块体。区块头中主要包括版本号、前一区块哈希值、时间戳、随机数、目标哈希、默克尔根;区块体中是通过默克尔树记录的账本信息。

这个主要是展示的区块链原理的技术架构,接下来,主要介绍组织架构及层级。

二、早期的区块链架构

区块链技术刚提出的时候,在架构上...

区块链系统架构图_区块链模型架构

weixin_39636691的博客

12-21

3877

一般说来,区块链系统由数据层、网络层、共识层、激励层、合约层和应用层组成。其中,数据层封装了底层数据区块以及相关的数据加密和时间戳等技术;网络层则包括分布式组网机制、数据传播机制和数据验证机制等;共识层主要封装网络节点的各类共识算法;激励层将经济因素集成到区块链技术体系中来,主要包括经济激励的发行机制和分配机制等;合约层主要封装各类脚本、算法和智能合约,是区块链可编程特性的基础;应用层则封装了区块...

区块链学习——区块链的架构

kuangsonghan的博客

04-20

2万+

摘要通过我前几篇区块链知识的介绍,我们知道区块链系统实际上就是一个维护公共数据账本的系统,一切的技术单元的设计都是为了更好地维护好这个公共账本。通过共识算法达成节点的账本的数据一致;通过密码算法确保账本数据的不可篡改性以及数据发送的安全性;通过脚本系统扩展账本数据的表达范畴。我们甚至可以认为去区块链系统实际上就是特别设计的数据库系统或者分布式数据库系统,在这个数据库可以存储数字货币,也可以存储更复...

2021年系统架构复习笔记(按章节).docx

03-18

复习笔记涵盖了近10年架构师考试历年真题所有知识点,并补充了XS培训班辅导资料内容,适合有一定基础但没有太多时间去翻阅教材、总结归纳的同学,帮你快速获得通过考试所需的知识储备。

考研初试408《数据结构》详细笔记

03-30

考研自用笔记,根据网课视频等详细做的笔记。内容为考研初试408《数据结构》的笔记,十分详细,文字笔记+配图说明,一刷、二刷、三刷都很适用,建议结合课本配套食用。

加油加油,在座各位都是研究生!! o((>ω< ))o

区块链分类与架构模型-学习笔记

01-20

一、分类

        1)第一种分类:根据区块链运行过程中是否需要中心节点或者权限优势节点授权,可将区块链划分为无许可区块链(Permissionless Blockchain)和许可区块链(Permissioned Blockchain).

        (1)无许可区块链:是一种完全去中心化的分布式账本技术,运行节点自由加入和退出,无须通过中心节点注册、认证和授权。

        (2)许可区块链:存在一个或多个节点具有较高权限,这些节点可以是可信第三方,也可能节点之间仍然互不信任、需要协商制定区块链维护规则和访问控制权限,只有经过相应功能授权的节点才可访问数据、参与系统维护。

 

Java数据结构学习笔记

12-18

Java数据结构学习笔记

《区块链原理、架构及应用》读书笔记一

01-08

区块链主要有三大关键技术:区块链加密技术,数据存储结构,共识机制。 一、区块链加密技术 从计算机科学角度看,区块链是一种分布式数据库,不同的节点拥有相同的数据记录,包含经节点确认的数据信息的区块从后...

软考高级系统架构设计师学习笔记及思维导图

02-23

软考高级的科目系统架构设计师考试,对所有知识点做了整理。 学习时需参考官方教材对照,本资料中只是将关键知识点提炼整理了一遍。 包括系统规划、系统分析、设计模式、数据库系统、计算机网络、性能评价、开发方法...

数据结构学习笔记.zip

最新发布

12-30

笔记:详细且系统的笔记,涵盖了数据结构的各个方面,从基础概念到复杂的数据结构如堆、B树等。这些笔记有助于你系统地复习和学习数据结构。 相关书籍推荐:为了更深入地理解数据结构,我们推荐了几本经典的教材和...

【笔记】分布式网络与分布式账本

time-space的博客

02-24

4399

一、分布式网络P2P的概念

1.类型与概念

  现实网络模式中,主要存在三种模式,分别是中心化、分布式与去中心化。

  分布式网络,作为区块链的底层公有链,是种分布式对等网络(P2P),每个网络节点都是平等的,没有哪个节点处于中心地位或者对其他节点具有控制、管理权限,所以每个结点之间的关系都是对等的,故又称为“对等网络”。 在此网络中的参与者既是资源、服务和内容的提供者,又是资源、服务和内容的获取...

考研高分笔记数据结构

08-22

《考研高分笔记 数据结构》是《高分笔记系列书籍》之一,旨在辅导计算机考研学生学习和理解数据结构。这本书于2010年夏天诞生,由一群考生合作完成的。它的主要目的是帮助考生系统地掌握数据结构的知识,并提供一些高分答题技巧和解题思路。这本书的内容包括数据结构的基本概念、线性表、栈和队列、树和图、排序和查找等内容。它通过清晰的讲解和丰富的例题,帮助考生深入理解和掌握数据结构的核心知识点,提高解题能力和应试水平。1

#### 引用[.reference_title]

- *1* [数据结构高分笔记](https://download.csdn.net/download/xiangliaojie/10707786)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]

[ .reference_list ]

“相关推荐”对你有帮助么?

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

Time-space

CSDN认证博客专家

CSDN认证企业博客

码龄8年

阿里巴巴本地生活

140

原创

3万+

周排名

206万+

总排名

35万+

访问

等级

4843

积分

277

粉丝

427

获赞

55

评论

2232

收藏

私信

关注

热门文章

【笔记】AOE网与关键路径

46450

【干货】软件安装报“不能注册DLL/OCX:RegSvr32失败;退出代码Ox3”

16785

【精华】安卓开发学习路线规划

16348

【练习】舞伴配对问题

12475

【笔记】CPU的结构和功能(一)

11580

分类专栏

区块链

9篇

设计模式

2篇

后端开发

8篇

密码学

2篇

分布式系统

3篇

数据结构

42篇

计算机组成原理

16篇

Android开发

14篇

数据结构

24篇

组成原理

16篇

技术干货

6篇

编程语言

2篇

基础整理

19篇

软件工程

4篇

随笔小练

22篇

平面设计

5篇

材料科学

2篇

其他杂谈

1篇

最新评论

【精华】安卓开发学习路线规划

chargez:

老哥有推荐的视频吗?只有书吗

【笔记】区块链的系统架构、数据结构及运行机制

haoma2772:

讲的很棒

【笔记】AOE网与关键路径

LCIWalt:

在有多条关键路径的情况下

【笔记】AOE网与关键路径

LCIWalt:

代码有误

会出现没有路径也作为路径的情况

【笔记】AOE网与关键路径

Lqh154157:

可以正常运行吗

您愿意向朋友推荐“博客详情页”吗?

强烈不推荐

不推荐

一般般

推荐

强烈推荐

提交

最新文章

【笔记】工厂方法模式

【笔记】单例模式

【精华】安卓开发学习路线规划

2020年27篇

2019年18篇

2018年33篇

2017年64篇

目录

目录

分类专栏

区块链

9篇

设计模式

2篇

后端开发

8篇

密码学

2篇

分布式系统

3篇

数据结构

42篇

计算机组成原理

16篇

Android开发

14篇

数据结构

24篇

组成原理

16篇

技术干货

6篇

编程语言

2篇

基础整理

19篇

软件工程

4篇

随笔小练

22篇

平面设计

5篇

材料科学

2篇

其他杂谈

1篇

目录

评论 1

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

区块链架构有哪些 - 知乎

区块链架构有哪些 - 知乎切换模式写文章登录/注册区块链架构有哪些解决方案工程师本文将整理汇总目前常见的区块链各种架构,通过汇总分析,区块链的架构基本都大同小异,前面详细介绍几个,后面的就不重复介绍了。一、区块链原理架构技术层面,区块链的结构如下图所示。一条区块链上有多个区块,每个区块包括区块头与区块体。区块头中主要包括版本号、前一区块哈希值、时间戳、随机数、目标哈希、默克尔根;区块体中是通过默克尔树记录的账本信息。这个主要是展示的区块链原理的技术架构,接下来,主要介绍组织架构及层级。二、早期的区块链架构区块链技术刚提出的时候,在架构上通常被分为6层,即数据层、网络层、共识层、激励层、合约层和应用层,下图为区块链技术早期架构图。下面,对各个层级进行解释。(1)数据层: 该层通过块存储数据,并且所有数据都包含在每个数据节点之间。数据层主要解决这些数据如何组合形成有意义的块的形式。每个块包括块的大小、块头、块中包含的事务数,以及最近一些或所有的新事务。(2)网络层: 该层扮演着区块链网络中节点和节点之间信息交换的角色,负责用户点对点信息交换,它主要包括P2P( Peer-To-Peer network)网络机制、数据传播和验证机制。正是由于块的P2P特性,数据传输在节点之间进行,因此即使某些节点或网络被破坏,也不会对其他部分的传输产生影响。(3)共识层: 该层允许高度分散的节点在P2P网络中对于区块数据的有效性达成一致,确定谁可以向主链中添加新的区块。目前,共识机制算法有十多种,其中最著名的是工作量证明机制(PoW) 、权益证明机制(PoS) 、股份授权证明机制(DPoS) 等。(4)激励层: 该层提供了一些激励方法,鼓励节点参与记账并确保整个网络的安全运行。通过共识机制,赢得记账权的节点可以获得一定的奖励。目前最熟悉的比特币有两个主要的激励因素,一是产生新区块的系统奖励,二是每次的交易手续费。(5)合约层: 该层封装了各种脚本、程序和合约,使区块链可编程。例如,智能合约是区块链的一些脚本,区块链上的各种交易会触发对应的脚本。触发后,该脚本就可以从区块链读取数据或向区块链写入数据甚至去触发其他脚本协同工作。通过这种方式,就可以使用程序算法来替换人员去仲裁和执行合同,为用户节省巨大的信任成本。(6)应用层: 该层封装了区块链的各种应用和场景,比如3种可编程应用类型,即可编程货币、可编程金融及可编程社会。例如,之前制作以太网的以太猫已部署在应用层。三、近期的区块链架构随着时间的推移,区块链技术的研究越来越深入,区块链技术发展迅速,区块链架构也在不断变化,很多传统的模块被弱化,激励层的机制在联盟链和私有链技术中甚至已被替代。例如数据层、共识层、激励层以及合约层的技术和机制大部分都是在交易的过程中体现,并没有很明显的区分,而类似于激励机制在联盟链和私有链中与公有链的区别在于大多公有链需依赖代币机制激励节点进行挖矿,从而打包新的交易数据,在联盟链和私有链中由于系统结构相对较为封闭,多为互相合作的多方来构建,可不使用代币机制来进行激励。通过详细分析区块链技术的本质特性和进展,本文将区块链技术的架构简化为 3 个层次,即网络层、交易层和应用层,如下图所示。下面,对各个层级进行解释。(1)网络层:网络层主要控制建立区块链网络以及所有节点之间信息的传递,其核心内容包括两部分,即组网方式和数据传播协议。网络层利用 P2P 技术实现分布式网络机制,主要任务是保证区块链节点之间可以通过 P2P 网络进行有效通信。通过自动联网机制,节点通过维护公共区块链结构来维持通信。网络层对区块链系统的组网方式、消息传播协议和数据验证机制进行了封装。根据实际应用需求,区块链系统中的每个节点都可以通过设计特定的传播协议和数据验证机制参与块数据的校验和记账过程。只有经过整个网络上的大多数节点验证后,才能在区块链中输入区块链。(2)交易层:交易层负责交易数据的建立、检验和保存,区块链的核心业务在该层中实现,主要内容包括地址格式、交易格式、全局账本和共识机制。区块链的核心业务由交易层实现,即两个地址之间可靠和有说服力的数据传输,且地址、交易、合约、账本、共识机制和激励措施都是其传递的主要内容。用户之间的一系列数据交互过程就是区块链中的“交易”过程,其被记录并公布在区块链网络中。区块链中的“地址”是用户用来隐藏真实身份的伪装,类似于支付宝或银行卡账户,可以使用公钥并经过加密算法( 例如椭圆加密算法 ECC得到。在加密算法中,交易的输入地址和输出地址是由公钥生成的,私钥信息由用户自己保存并用于生成签名以验证所需资金的所有权。(3)应用层:目前应用程序场景的程序和接口都是由应用层提供,并且安装在应用层的各种应用程序是直接与用户进行交互的,用户不用去探究区块链那些底层的细节。目前,典型的区块链应用包括数字货币应用,数据存储应用以及能源应用等。四、区块链+数据管理架构基于区块链的数据资产管理平台链系统的架构体系如下图所示,这个架构类似于早期的区块链架构。下面,对各个层级进行解释。(1)数据层:数据层主要包括数据类别等的数字资产所有相关信息、系统节点账户信息等,使用链式区块进行存储。(2)网络层:网络层包括点对点网络在内的数据传播机制与数据验证机制等,目的是维持不同节点之间区块数据的同步并进行验证。(3)共识层:区块链系统本质上是一种多个节点同时运行,共同维护的去中心化应用,单节点生成的结果需与全网节点达成共识经确认后才可被打包入链。其中,较多采用的PoW(工作量证明)机制需要耗费大量的时间与算力来争取记账权以达成共识,而DPoS(委任权益证明)机制采用所有节点投票选取超级节点直接获得记账权的方式,仅需极少的计算时间和消耗就能够保证区块链系统的正常运转。考虑到数据资产管理系统为联盟链,节点可信度高,采用DPoS共识算法更为简洁、高效,更适合作为系统的共识算法。(4)合约层:合约层主要是在管理制度的约束下利用由自动化脚本代码组成的智能合约来实现各类功能如匹配交易双方等。(5)应用层:应用层能对外提供多种基于区块链的系统的应用,如节点注册、账户管理、数字资产的确权和流转交易等。五、区块链+大数据治理区块链+大数据治理的应用场景主要包含数据层、网络层、共识层、激励层、合约层和应用层,各层相互衔接、互为关联,以求达到智慧治理、精准治理、系统治理、科学治理的目标。下面,对各个层级进行解释。(1)数据层:数据层是基础层,功能在于采集、记录和存储城市公共安全大数据。区块头封装时间戳、根哈希值、版本号、工作量证明等信息,区块体则包含利用哈希算法、Merkle 树、非对称加密等技术计算的公共安全交易记录,这一层的密码学技术和运作规则能够保证公共安全大数据的安全性和完整性。(2)网络层:网络层作为工作机制层,可使治理主体共同参与数据区块的传播、验证及记账,保持公共安全大数据的更新与维护。(3)共识层:共识层主要包括各类共识算法,旨在让政府部门、私人单位、社会公众等治理主体在分布式系统中达成共识并建立信任网络,从而维护公共安全大数据的有效性。(4)激励层:激励层功能在于各共识主体在集体维护区块链系统的过程中能够得到相应激励,使得各主体既能维护自身利益,又可以保证区块链数据的有效性和时序性。(5)合约层:合约层则需要在国家制度环境下进行设计,其智能合约是各主体一致遵循的计算机数字协议,可以根据治理的逻辑和流程制定合约规则,自发进行公共安全的数据记录、存储、共享,从而有效降低治理成本,提高治理效率。(6)应用层:应用层则可以根据去中心化程度和治理主体设计公有链和联盟链网络面向政府普通系统和非政府系统,私有链面向政府机密系统,用户根据网络访问入口获得多元化服务,真正实现数据的共建共享。(7)目标层:目标层便是我们治理的目标任务。另外,还有下图架构,包括应用层、激励层、共识层、网络层、数据层,无非是在上图的架构中进行了简化,这里就不详细介绍了。六、“趣链科技”区块链架构“趣链科技”提出了全球首个完善区块链3.0全栈全生态支持:区块链基础共识网络、链上链下协同、跨链协同、芯片级上链支持与企业级服务平台。七、蚂蚁区块链溯源架构蚂蚁区块链提出的溯源架构如下图所示,主要包括BaaS层、平台层、交互层、物理层。八、工业区块链架构工业区块链应用指南中,介绍了工业区块链的架构,如下图所示。下面,对各个层级进行解释。(1)物理层:在基础网络、服务器、存储、虚拟机等基础组件之外,物理层还包括传感器、智能设备、视频监控、边缘设备、成套设备、成像设备等。该层提供了基本的互联网基础信息服务,主要是为上层架构组件提供基础设施,保证上层服务可靠运行,物联网IoT设备决定了数据来源的可靠性,区块链保证了数据的真实性,最后将数据安全的存储、分析和计算,提供高效、精准的数据服务。此外,为了更快处理延迟,减少无效数据传到云端账本,降低网络的带宽压力以及存储压力,往往会在边缘侧进行计算。在边缘侧的计算资源的环境下,和云端的计算形成共识,产生可信事件。该事件可以直接触发交易流程,比如支付、派工等。(2)核心层:核心层是区块链系统最重要的组成部分,将会影响整个系统的安全性和可靠性。共识机制与P2P网络传输是区块链的核心技术,保证了网络的安全性和分布式一致性。为了实现物理设备的数字孪生,除了传统设备标识之外,对于一些高价值的设备,需要额外为每一个设备配备一个物理级别的嵌入式的身份证书一次写入到设备中。数据的使用方可以通过统一的工业CA中心来验证设备数据的身份。在工业场景中,有许多企业商业数据,所以隐私保护也是溯源架构中必不可少的一环。针对于工业应用特点的分布式账本,除了具有传统的难以篡改、共识、受限访问、智能合约等特点以外,还需要具备适应工业数据的账本查询能力,满足资产转移状态迁移的快速读写能力等,以达到快速溯源和资产交易的目的。(3)接口层:接口层主要用于完成功能模块的封装,为应用层提供简洁的调用方式。应用层通过调用RPC接口与其他节点进行通信,通过调用SDK工具包对本地账本数据进行访问、写入等操作。数据从设备端发送上来以后,经过网关,数据处理,存放在云端的账本里面。在这个过程中,数据可能被有意无意的篡改,这里需要有技术协议保障数据在进入账本前不会被篡改或者删除。(4)应用层:基于可信数据,相关参与方的数据、过程和规则通过智能合约入链后,默认就达到相关参与方的链上共享。通过拖拽的方式,让区块链联盟成员可以非常方便的设计相关参与者(人、机、机构)的身份权限和规则,并且自动转化为相应的智能合约部署在区块链网络上,快速生成应用APP。区块链技术在应用层通过在生产端、流通端、产融协同端共享数据、流程和规则,实现数据要素的可信互联,促进参与主体之间的可信协作,服务于实体经济,服务于产业转型优化。生产端,实现企业内部与企业之间的数据共享。流通端,由生产企业延伸至消费者,包括物流商、销售商等中间环节,涉及多主体的供应链、贸易链的确权、协同、管理。产融协同,主要在企业与金融机构之间根据多主体可信产业数据,进行金融赋能和支持。(5)监管层:监管层涉及工业区块链整体架构自上而下的网管、监控以及相关认证、鉴权等服务。监管机构以区块链节点的身份参与到基于联盟区块链的工业互联网基础设施中,合规科技监管机制以智能合约的软件程序形式介入到产业联盟的区块链系统中,负责获取企业的可信生产和交易数据并进行合规性审查,通过大数据分析技术进行分析以把握整体工业行业的动态。九、腾讯云区块链架构腾讯云区块链的架构如下图所示,包括基础设施层、TBaaS层、行业应用层。 其中,TBaaS层的技术架构如下图所示。此外,另一种版本如下图所示。十、SHAREX区块链架构SHAREX区块链架构如下图所示。十一、京东区块链架构京东区块链服务平台架构如下图所示。以上便是总结整理的一些区块链的架构,核心的还是包括:网络层、共识层、合约层,这都是区块链技术本身附带的一些功能。另外,根据不同的应用场景及底层设施,再附加上一些应用层、基础层等。总体而言区块链架构已经有了较为公认的模型,但技术总是不断升级的,区块链4.0、5.0...以后,架构还会有更多的升级,区块链实现的场景还会源源不断丰富。发布于 2021-06-11 15:11技术架构区块链开发指南(书籍)区块链技术​赞同 28​​1 条评论​分享​喜欢​收藏​申请

从概念到底层技术,一文看懂区块链架构设计(附知识图谱) - 知乎

从概念到底层技术,一文看懂区块链架构设计(附知识图谱) - 知乎切换模式写文章登录/注册从概念到底层技术,一文看懂区块链架构设计(附知识图谱)巴比特​已认证账号前言区块链作为一种架构设计的实现,与基础语言或平台等差别较大。区块链是加密货币背后的技术,是当下与VR虚拟现实等比肩的热门技术之一,本身不是新技术,类似Ajax,可以说它是一种技术架构,所以我们从架构设计的角度谈谈区块链的技术实现。无论你擅长什么编程语言,都能够参考这种设计去实现一款区块链产品。与此同时,梳理与之相关的知识图谱和体系,帮助大家系统的去学习研究。基本概念区块链的概念最近很火,它来自于比特币等加密货币的实现,但是目前,这项技术已经逐步运用在各个领域。什么是区块链技术?为了感性认识这个问题,我们可以使用谷歌地球的例子做类比,ajax不是什么新技术,但组合在一起就成就了产品谷歌地球,与之类似,区块链也不是什么新技术,但与加密解密技术、P2P网络等组合在一起,就诞生了比特币。技术人员,特别是Web开发工程师,学习了解ajax技术最早是被谷歌地球酷炫的效果所吸引。而现在,历史再一次重演,很多人被比特币的疯狂发展所吸引,进而开始研究其背后的技术——区块链。区块链原本是比特币等加密货币存储数据的一种独特方式,是一种自引用的数据结构,用来存储大量交易信息,每条记录从后向前有序链接起来,具备公开透明、无法篡改、方便追溯的特点。实际上,这种特性也直接体现了整个比特币的特点,因此使用区块链来概括加密货币背后的技术实现是非常直观和恰当的。区块链是一项技术,加密货币是其开发实现的一类产品(含有代币,也有不含代币的区块链产品),不能等同或混淆。与加密货币相比,区块链这个名字抛开了代币的概念,更加形象化、技术化、去政治化,更适合作为一门技术去研究、去推广。所以,目前当大家单独说到区块链的时候,就是指的区块链技术,是实现了数据公开、透明、可追溯的产品的架构设计方法,算作广义的区块链。而当在具体产品中谈到区块链的时候,可以指类似比特币的数据存储方式,或许是数据库设计,或许是文件形式的设计,这算作狭义的区块链。广义的区块链技术,必须包含点对点网络设计、加密技术应用、分布式算法的实现、数据存储技术的使用等4个方面,其他的可能涉及到分布式存储、机器学习、VR、物联网、大数据等。狭义的区块链仅仅涉及到数据存储技术,数据库或文件操作等。本文的区块链,指的是广义的区块链。架构图从架构设计上来说,区块链可以简单的分为三个层次,协议层、扩展层和应用层。其中,协议层又可以分为存储层和网络层,它们相互独立但又不可分割。如图:协议层所谓的协议层,就是指代最底层的技术。这个层次通常是一个完整的区块链产品,类似于我们电脑的操作系统,它维护着网络节点,仅提供Api供调用。通常官方会提供简单的客户端(通称为钱包),这个客户端钱包功能也很简单,只能建立地址、验证签名、转账支付、查看余额等。这个层次是一切的基础,构建了网络环境、搭建了交易通道、制定了节点奖励规则,至于你要交易什么,想干什么,它一概不过问,也过问不了。典型的例子,自然是比特币,还有各种二代币,比如莱特币等,本书介绍的亿书币也是。这个层次,是现阶段开发者聚集的地方,这说明加密货币仍在起步当中。从用到的技术来说,协议层主要包括网络编程、分布式算法、加密签名、数据存储技术等4个方面,其中网络编程能力是大家选择编程语言的主要考虑因素,因为分布式算法基本上属于业务逻辑上的实现,什么语言都可以做到,加密签名技术是直接简单的使用(请看书中相关的加密解密文章,不建议自由发挥,没有过多的编码逻辑),数据库技术也主要在使用层面,只有点对点网络的实现和并发处理才是开发的难点,所以对于那些网络编程能力强,对并发处理简单的语言,人们就特别偏爱。也因此,Nodejs开发区块链应用,逐渐变得更加流行,Go语言也在逐渐兴起。上面的架构设计图里,我把这个层面进一步分成了存储层和网络层。数据存储可以相对独立,选择自由度大一些,可以单独来讨论。选择的原则无非是性能和易用性。我们知道,系统的整体性能,主要取决于网络或数据存储的I/O性能,网络I/O优化空间不大,但是本地数据存储的I/O是可以优化的。比如,比特币选择的是谷歌的LevelDB,据说这个数据库读写性能很好,但是很多功能需要开发者自己实现。目前,困扰业界的一个重大问题是,加密货币交易处理量远不如现在中心化的支付系统(银行等),除了I/O,需要全方位的突破。分布式算法、加密签名等都要在实现点对点网络的过程中加以使用,所以自然是网络层的事情,也是编码的重点和难点,《Nodejs开发加密货币》全书分享的基本上就是这部分的内容。当然,也有把点对点网络的实现单独分开的,把节点查找、数据传输和验证等逻辑独立出来,而把共识算法、加密签名、数据存储等操作放在一起组成核心层。无论怎么组合,这两个部分都是最核心、最底层的部分,都是协议层的内容。扩展层这个层面类似于电脑的驱动程序,是为了让区块链产品更加实用。目前有两类,一是各类交易市场,是法币兑换加密货币的重要渠道,实现简单,来钱快,成本低,但风险也大。二是针对某个方向的扩展实现,比如基于亿书侧链,可为第三方出版机构、论坛网站等内容生产商提供定制服务等。特别值得一提的就是大家听得最多的“智能合约”的概念,这是典型的扩展层面的应用开发。所谓“智能合约”就是“可编程合约”,或者叫做“合约智能化”,其中的“智能”是执行上的智能,也就是说达到某个条件,合约自动执行,比如自动转移证券、自动付款等,目前还没有比较成型的产品,但不可否认,这将是区块链技术重要的发展方向。扩展层使用的技术就没有什么限制了,可以包括很多,上面提到的分布式存储、机器学习、VR、物联网、大数据等等,都可以使用。编程语言的选择上,可以更加自由,因为可以与协议层完全分离,编程语言也可以与协议层使用的开发语言不相同。在开发上,除了在交易时与协议层进行交互之外,其他时候尽量不要与协议层的开发混在一起。这个层面与应用层更加接近,也可以理解为B/S架构的产品中的服务端(Server)。这样不仅在架构设计上更加科学,让区块链数据更小,网络更独立,同时也可以保证扩展层开发不受约束。从这个层面来看,区块链可以架构开发任何类型的产品,不仅仅是用在金融行业。在未来,随着底层协议的更加完善,任何需要第三方支付的产品都可以方便的使用区块链技术;任何需要确权、征信和追溯的信息,都可以借助区块链来实现。我个人觉得,这个目标应该很快就能实现。应用层这个层面类似于电脑中的各种软件程序,是普通人可以真正直接使用的产品,也可以理解为B/S架构的产品中的浏览器端(Browser)。这个层面的应用,目前几乎是空白。市场亟待出现这样的应用,引爆市场,形成真正的扩张之势,让区块链技术快速走进寻常百姓,服务于大众。大家使用的各类轻钱包(客户端),应该算作应用层最简单、最典型的应用。很快,亿书将基于亿书网络推出文档协作工具,这个就是典型的应用层的产品。限于当前区块链技术的发展,亿书只能从协议层出发,把目标指向应用层,同时为第三方开发者提供扩展层的强大支持。这样做既可以避免贪多,又可以避免无法落地,是真正理性的开发路线。因为纯粹的开发协议层或扩展层,无法真正理解和验证应用层,会脱离实际,让第三方开发者很难使用。如果仅仅考虑应用层,市面上又找不到真正牢固、易用的协议层或扩展层的产品。所以,我们只好全面发力,采取完全开源开放的态度,通过社区的力量,共同去做一件有意义的事情,也算为中国区块链技术发展做点技术积累和微薄贡献。编程实现很多小伙伴,习惯结合自己的技术背景,来理解上面的架构设计。这里,结合具体的编程语言,简单介绍几款产品,仅供参考。(1)C/C++这两个语言是无法逾越的,任何开发遇到瓶颈,基本上都会找到它们,自然应该排在第一位要介绍的。同时,区块链技术的鼻祖,比特币(协议层)就是用C++语言开发的,而且目前为止,没有比比特币更加成功的区块链产品。所以,无论你使用什么语言开发,在正式进入这个行业的过程中,都应该先研究研究比特币。比特币官方客户端钱包用的Qt,第三方钱包有Python语言开发的,特别是第三方整理的开发库(Api包)很多是Nodejs设计的。比特币的架构,与上面的架构设计基本相同,另外,因为共识算法采用的是工作量证明机制(PoW:Proof of work),还有一些特殊的挖矿的过程。其他竞争币都是直接来自比特币的分支,所以编程语言相同,具体的技术选型和技术实现上可能有所改进,比如:莱特币,使用了其他的加密算法。官方网站:https://bitcoin.org/源码库:https://github.com/bitcoin(2)Nodejs/JavascriptNodejs平台强大的网络编程能力,以及js脚本语言的简单快捷,在区块链领域自然少不了它的身影。亿书便是这样一个区块链产品,亿书币是它的协议层,使用了著名的express开发框架,基于http协议开发而成。同时,它采用了授权股权证明机制(DPoS),算法上的改进,让它在处理交易时更加轻量,处理能力大大提升。它提供了强大的协作机制,为数字出版、版权保护提供了便利;扩展了侧链功能,可以基于它开发任何去中心化的应用,从而为专业作者、博客爱好者和开发者提供很多方便。《Nodejs开发加密货币》这本书完整分享了它的源码,从区块链基础概念到代码实现,从基本原理到开发设计思路,都做了比较详细的探索,目前为止,从协议层面深入代码讲解区块链技术实现的书籍极少,这算作一本。官方网站:http://ebookchain.org/源码库:https://github.com/Ebookcoin(3)Python如果是Python语言爱好者,我建议研究研究以太坊(Ethereum)的Python实现。尽管因为The Dao事件闹得沸沸扬扬,但从技术实现的角度来说,仍然值得参考学习。以太坊官方定位为一种开发管理分布式应用的平台,主攻方向就是“智能合约”,并为其定制了一种编程语言Solidity。以太坊的核心是以太坊虚拟机(EVM),允许用户按照自己的意愿创建操作。以太坊给出了Go、Java、Python等多语言的实现。其中以python为基础的实现主要包括三个部分:Pyethapp是客户端部分;pyethereum是核心库,实现了区块链、以太坊模拟机和挖矿等功能;pydevp2p是点对点网络库,实现了节点发现、合约代码传输、加密签名等功能,这三者组合在一起就是完整的区块链实现,后面两个核心库共同组成了协议层。另外,go-ethereum是go语言的完整实现;Ethereum(J) 是纯Java实现,它作为可以嵌入任何Java/Scala项目的库提供。客户端方面,还有Rust、Ruby、Javascript等语言的实现。官方网站:https://ethereum.org/源码库:https://github.com/ethereum/pyethapp(4)Go在多核时代,Go语言备受喜爱,它可以让你用同步方式轻松实现高并发,特别是在分布式系统、网络编程等领域,应用非常广。所以,在区块链开发领域,也有很多使用Go语言的项目。其中,由linux基金会主导的超级账本(HyperLeger),版本库的名字叫Fabric,就是其中一个。该项目试图为新一代的事务应用创建一种开放的分布式账本标准,支持许可式区块链(这种方式可能无法再现比特币那种强大的网络效应)。Fabric的开发环境建立在VirtualBox虚拟机上,部署环境可以自建网络,也可以直接部署在BlueMix上,部署方式可docker化,支持用Go和JavaScript开发智能合约。它采用PBFT分布式算法,网络编程方面用gRPC来做P2P通讯,使用 Protocol Buffer来序列化要传递的数据结构。在架构设计上,Fabric可能与比特币等区块链产品有所不同,但是上述基本组成部分还是不可或缺的。官方网站:https://www.hyperledger.org/源码库:https://github.com/hyperledger其他编程语言,比如:C#等,也有具体实例,这里就不再列举。总之,针对不同的编程语言,在具体的编码或架构设计上可能有所差别,甚至很大,但是协议层所使用的技术并没有太大的变化。其中,网络编程是重点和难点,多数没有现成的框架可用,都是使用编程语言自身提供的库来设计开发,所以比较底层,非常考验开发者的编码功底。知识图谱循着上面的分析,我们已经可以了解区块链是什么,并知道怎么实现了,顺便梳理一下其中的编程技术知识,自然也就清晰多了。根据个人的理解,我把与区块链相关的知识分为下面5个方面:(1)基础知识区块链是新技术,与之相关的是其背后大量的新概念、新理论。这些知识,虽然不直接体现在编码里,但却是理解区块链,掌握区块链技术的基本知识。所以,理当成为区块链技术不可或缺的一部分。这部分从基本概念入手,到工作原理的描述,就能够把区块链基础知识全部覆盖。(2)技术实现区块链是一项技术,但从上面的分析可以看出,它应该是一种架构应用,架构的实现理当是我们知识库的核心。正如大家看到的,任何一款区块链产品,协议层必须包括点对点网络、加密签名、数据存储、分布式算法等4个部分,应用层也必然要提供钱包、客户端浏览器等基础应用。所以,把这部分独立出来,也是合情合理。在扩展层的部分,区块链技术可以对接各种应用,比如:金融、物联网、网络安全、版权保护、电子商务等等,现有的很多技术都可以用在这里。只不过,如何与区块链结合,如何实现跨行业使用,自然是这部分内容研究的课题。所以,这里所罗列或涉及到的技术,理应归为技术实现的一个重要部分。(3)开发环境区块链是多项技术的组合,有其自身的复杂性,个别应用对开发环境依赖较大,开发工具与环境搭建,是让开发者快速上手的重要内容。(4)项目实践据说,短短数年,全球区块链产品已经有几千个,其中不乏创新应用。有些优秀的开源产品和项目实践,是最好的学习研究资料。(5)开发文档这个自然不用说了,每一种产品也都会有自己的开发文档。另一个,就是有心的开发者整理汇总的一些资源,可以帮助我们节省很多查询的时间。我在考虑这个知识体系的过程中,主要思考的是,读者循着这些标签去查阅文章,能否快速掌握区块链技术,并最终上手开发实现一个区块链产品。另外,也刻意规避了与具体编程语言,以及特定领域相关的词汇,唯一可以区分的就是这些节点之下对应的文章标签。所以,这些分类就显得非常中性。也考虑过使用比特币、竞争币、智能合约、数字资产、智能资产等具体领域的实现作为分类方法,但又怕限制了读者的思维,同时随着区块链的发展,这个图谱将不停的修改下去。这里,呼吁一下,希望读到这篇文章的小伙伴提供您的宝贵意见,让我们把这个关于区块链的知识分类图谱做得更加科学合理,使用更加方便。总结这篇文章,我们把区块链技术基础架构描述了一下,需要再次强调的是,这仅仅是一种实现方式,绝非所有的区块链产品都是如此,我们也期待更多创新出现,也相信一定会出现。编程实现罗列了几种编程语言与其实现的典型产品,因为协议层技术较为底层,并没有太多现成的框架需要介绍或讨论,同时,具体的技术细节,也绝非几行字能够罗列清楚,所幸,这些产品都是开源产品,大家可以结合自己的技术背景,进一步查看对应的产品源码,很快就能了解其中的奥妙。作者简介:朱志文,亿书创始人,CSDN区块链知识库特邀编辑。中国区块链俱乐部主创者和发起人,比特币的忠实粉丝,区块链技术的布道者,代表作《Nodejs开发加密货币》。原文:从概念到底层技术,一文看懂区块链架构设计(附知识图谱)发布于 2016-10-28 16:33区块链(Blockchain)比特币 (Bitcoin)​赞同 170​​13 条评论​分享​喜欢​收藏​申请

区块链架构有哪些 - 知乎

区块链架构有哪些 - 知乎切换模式写文章登录/注册区块链架构有哪些解决方案工程师本文将整理汇总目前常见的区块链各种架构,通过汇总分析,区块链的架构基本都大同小异,前面详细介绍几个,后面的就不重复介绍了。一、区块链原理架构技术层面,区块链的结构如下图所示。一条区块链上有多个区块,每个区块包括区块头与区块体。区块头中主要包括版本号、前一区块哈希值、时间戳、随机数、目标哈希、默克尔根;区块体中是通过默克尔树记录的账本信息。这个主要是展示的区块链原理的技术架构,接下来,主要介绍组织架构及层级。二、早期的区块链架构区块链技术刚提出的时候,在架构上通常被分为6层,即数据层、网络层、共识层、激励层、合约层和应用层,下图为区块链技术早期架构图。下面,对各个层级进行解释。(1)数据层: 该层通过块存储数据,并且所有数据都包含在每个数据节点之间。数据层主要解决这些数据如何组合形成有意义的块的形式。每个块包括块的大小、块头、块中包含的事务数,以及最近一些或所有的新事务。(2)网络层: 该层扮演着区块链网络中节点和节点之间信息交换的角色,负责用户点对点信息交换,它主要包括P2P( Peer-To-Peer network)网络机制、数据传播和验证机制。正是由于块的P2P特性,数据传输在节点之间进行,因此即使某些节点或网络被破坏,也不会对其他部分的传输产生影响。(3)共识层: 该层允许高度分散的节点在P2P网络中对于区块数据的有效性达成一致,确定谁可以向主链中添加新的区块。目前,共识机制算法有十多种,其中最著名的是工作量证明机制(PoW) 、权益证明机制(PoS) 、股份授权证明机制(DPoS) 等。(4)激励层: 该层提供了一些激励方法,鼓励节点参与记账并确保整个网络的安全运行。通过共识机制,赢得记账权的节点可以获得一定的奖励。目前最熟悉的比特币有两个主要的激励因素,一是产生新区块的系统奖励,二是每次的交易手续费。(5)合约层: 该层封装了各种脚本、程序和合约,使区块链可编程。例如,智能合约是区块链的一些脚本,区块链上的各种交易会触发对应的脚本。触发后,该脚本就可以从区块链读取数据或向区块链写入数据甚至去触发其他脚本协同工作。通过这种方式,就可以使用程序算法来替换人员去仲裁和执行合同,为用户节省巨大的信任成本。(6)应用层: 该层封装了区块链的各种应用和场景,比如3种可编程应用类型,即可编程货币、可编程金融及可编程社会。例如,之前制作以太网的以太猫已部署在应用层。三、近期的区块链架构随着时间的推移,区块链技术的研究越来越深入,区块链技术发展迅速,区块链架构也在不断变化,很多传统的模块被弱化,激励层的机制在联盟链和私有链技术中甚至已被替代。例如数据层、共识层、激励层以及合约层的技术和机制大部分都是在交易的过程中体现,并没有很明显的区分,而类似于激励机制在联盟链和私有链中与公有链的区别在于大多公有链需依赖代币机制激励节点进行挖矿,从而打包新的交易数据,在联盟链和私有链中由于系统结构相对较为封闭,多为互相合作的多方来构建,可不使用代币机制来进行激励。通过详细分析区块链技术的本质特性和进展,本文将区块链技术的架构简化为 3 个层次,即网络层、交易层和应用层,如下图所示。下面,对各个层级进行解释。(1)网络层:网络层主要控制建立区块链网络以及所有节点之间信息的传递,其核心内容包括两部分,即组网方式和数据传播协议。网络层利用 P2P 技术实现分布式网络机制,主要任务是保证区块链节点之间可以通过 P2P 网络进行有效通信。通过自动联网机制,节点通过维护公共区块链结构来维持通信。网络层对区块链系统的组网方式、消息传播协议和数据验证机制进行了封装。根据实际应用需求,区块链系统中的每个节点都可以通过设计特定的传播协议和数据验证机制参与块数据的校验和记账过程。只有经过整个网络上的大多数节点验证后,才能在区块链中输入区块链。(2)交易层:交易层负责交易数据的建立、检验和保存,区块链的核心业务在该层中实现,主要内容包括地址格式、交易格式、全局账本和共识机制。区块链的核心业务由交易层实现,即两个地址之间可靠和有说服力的数据传输,且地址、交易、合约、账本、共识机制和激励措施都是其传递的主要内容。用户之间的一系列数据交互过程就是区块链中的“交易”过程,其被记录并公布在区块链网络中。区块链中的“地址”是用户用来隐藏真实身份的伪装,类似于支付宝或银行卡账户,可以使用公钥并经过加密算法( 例如椭圆加密算法 ECC得到。在加密算法中,交易的输入地址和输出地址是由公钥生成的,私钥信息由用户自己保存并用于生成签名以验证所需资金的所有权。(3)应用层:目前应用程序场景的程序和接口都是由应用层提供,并且安装在应用层的各种应用程序是直接与用户进行交互的,用户不用去探究区块链那些底层的细节。目前,典型的区块链应用包括数字货币应用,数据存储应用以及能源应用等。四、区块链+数据管理架构基于区块链的数据资产管理平台链系统的架构体系如下图所示,这个架构类似于早期的区块链架构。下面,对各个层级进行解释。(1)数据层:数据层主要包括数据类别等的数字资产所有相关信息、系统节点账户信息等,使用链式区块进行存储。(2)网络层:网络层包括点对点网络在内的数据传播机制与数据验证机制等,目的是维持不同节点之间区块数据的同步并进行验证。(3)共识层:区块链系统本质上是一种多个节点同时运行,共同维护的去中心化应用,单节点生成的结果需与全网节点达成共识经确认后才可被打包入链。其中,较多采用的PoW(工作量证明)机制需要耗费大量的时间与算力来争取记账权以达成共识,而DPoS(委任权益证明)机制采用所有节点投票选取超级节点直接获得记账权的方式,仅需极少的计算时间和消耗就能够保证区块链系统的正常运转。考虑到数据资产管理系统为联盟链,节点可信度高,采用DPoS共识算法更为简洁、高效,更适合作为系统的共识算法。(4)合约层:合约层主要是在管理制度的约束下利用由自动化脚本代码组成的智能合约来实现各类功能如匹配交易双方等。(5)应用层:应用层能对外提供多种基于区块链的系统的应用,如节点注册、账户管理、数字资产的确权和流转交易等。五、区块链+大数据治理区块链+大数据治理的应用场景主要包含数据层、网络层、共识层、激励层、合约层和应用层,各层相互衔接、互为关联,以求达到智慧治理、精准治理、系统治理、科学治理的目标。下面,对各个层级进行解释。(1)数据层:数据层是基础层,功能在于采集、记录和存储城市公共安全大数据。区块头封装时间戳、根哈希值、版本号、工作量证明等信息,区块体则包含利用哈希算法、Merkle 树、非对称加密等技术计算的公共安全交易记录,这一层的密码学技术和运作规则能够保证公共安全大数据的安全性和完整性。(2)网络层:网络层作为工作机制层,可使治理主体共同参与数据区块的传播、验证及记账,保持公共安全大数据的更新与维护。(3)共识层:共识层主要包括各类共识算法,旨在让政府部门、私人单位、社会公众等治理主体在分布式系统中达成共识并建立信任网络,从而维护公共安全大数据的有效性。(4)激励层:激励层功能在于各共识主体在集体维护区块链系统的过程中能够得到相应激励,使得各主体既能维护自身利益,又可以保证区块链数据的有效性和时序性。(5)合约层:合约层则需要在国家制度环境下进行设计,其智能合约是各主体一致遵循的计算机数字协议,可以根据治理的逻辑和流程制定合约规则,自发进行公共安全的数据记录、存储、共享,从而有效降低治理成本,提高治理效率。(6)应用层:应用层则可以根据去中心化程度和治理主体设计公有链和联盟链网络面向政府普通系统和非政府系统,私有链面向政府机密系统,用户根据网络访问入口获得多元化服务,真正实现数据的共建共享。(7)目标层:目标层便是我们治理的目标任务。另外,还有下图架构,包括应用层、激励层、共识层、网络层、数据层,无非是在上图的架构中进行了简化,这里就不详细介绍了。六、“趣链科技”区块链架构“趣链科技”提出了全球首个完善区块链3.0全栈全生态支持:区块链基础共识网络、链上链下协同、跨链协同、芯片级上链支持与企业级服务平台。七、蚂蚁区块链溯源架构蚂蚁区块链提出的溯源架构如下图所示,主要包括BaaS层、平台层、交互层、物理层。八、工业区块链架构工业区块链应用指南中,介绍了工业区块链的架构,如下图所示。下面,对各个层级进行解释。(1)物理层:在基础网络、服务器、存储、虚拟机等基础组件之外,物理层还包括传感器、智能设备、视频监控、边缘设备、成套设备、成像设备等。该层提供了基本的互联网基础信息服务,主要是为上层架构组件提供基础设施,保证上层服务可靠运行,物联网IoT设备决定了数据来源的可靠性,区块链保证了数据的真实性,最后将数据安全的存储、分析和计算,提供高效、精准的数据服务。此外,为了更快处理延迟,减少无效数据传到云端账本,降低网络的带宽压力以及存储压力,往往会在边缘侧进行计算。在边缘侧的计算资源的环境下,和云端的计算形成共识,产生可信事件。该事件可以直接触发交易流程,比如支付、派工等。(2)核心层:核心层是区块链系统最重要的组成部分,将会影响整个系统的安全性和可靠性。共识机制与P2P网络传输是区块链的核心技术,保证了网络的安全性和分布式一致性。为了实现物理设备的数字孪生,除了传统设备标识之外,对于一些高价值的设备,需要额外为每一个设备配备一个物理级别的嵌入式的身份证书一次写入到设备中。数据的使用方可以通过统一的工业CA中心来验证设备数据的身份。在工业场景中,有许多企业商业数据,所以隐私保护也是溯源架构中必不可少的一环。针对于工业应用特点的分布式账本,除了具有传统的难以篡改、共识、受限访问、智能合约等特点以外,还需要具备适应工业数据的账本查询能力,满足资产转移状态迁移的快速读写能力等,以达到快速溯源和资产交易的目的。(3)接口层:接口层主要用于完成功能模块的封装,为应用层提供简洁的调用方式。应用层通过调用RPC接口与其他节点进行通信,通过调用SDK工具包对本地账本数据进行访问、写入等操作。数据从设备端发送上来以后,经过网关,数据处理,存放在云端的账本里面。在这个过程中,数据可能被有意无意的篡改,这里需要有技术协议保障数据在进入账本前不会被篡改或者删除。(4)应用层:基于可信数据,相关参与方的数据、过程和规则通过智能合约入链后,默认就达到相关参与方的链上共享。通过拖拽的方式,让区块链联盟成员可以非常方便的设计相关参与者(人、机、机构)的身份权限和规则,并且自动转化为相应的智能合约部署在区块链网络上,快速生成应用APP。区块链技术在应用层通过在生产端、流通端、产融协同端共享数据、流程和规则,实现数据要素的可信互联,促进参与主体之间的可信协作,服务于实体经济,服务于产业转型优化。生产端,实现企业内部与企业之间的数据共享。流通端,由生产企业延伸至消费者,包括物流商、销售商等中间环节,涉及多主体的供应链、贸易链的确权、协同、管理。产融协同,主要在企业与金融机构之间根据多主体可信产业数据,进行金融赋能和支持。(5)监管层:监管层涉及工业区块链整体架构自上而下的网管、监控以及相关认证、鉴权等服务。监管机构以区块链节点的身份参与到基于联盟区块链的工业互联网基础设施中,合规科技监管机制以智能合约的软件程序形式介入到产业联盟的区块链系统中,负责获取企业的可信生产和交易数据并进行合规性审查,通过大数据分析技术进行分析以把握整体工业行业的动态。九、腾讯云区块链架构腾讯云区块链的架构如下图所示,包括基础设施层、TBaaS层、行业应用层。 其中,TBaaS层的技术架构如下图所示。此外,另一种版本如下图所示。十、SHAREX区块链架构SHAREX区块链架构如下图所示。十一、京东区块链架构京东区块链服务平台架构如下图所示。以上便是总结整理的一些区块链的架构,核心的还是包括:网络层、共识层、合约层,这都是区块链技术本身附带的一些功能。另外,根据不同的应用场景及底层设施,再附加上一些应用层、基础层等。总体而言区块链架构已经有了较为公认的模型,但技术总是不断升级的,区块链4.0、5.0...以后,架构还会有更多的升级,区块链实现的场景还会源源不断丰富。发布于 2021-06-11 15:11技术架构区块链开发指南(书籍)区块链技术​赞同 28​​1 条评论​分享​喜欢​收藏​申请

分享实录|一文读懂区块链整体架构及应用方向 - 知乎

分享实录|一文读懂区块链整体架构及应用方向 - 知乎首发于HiBlock区块链社区切换模式写文章登录/注册分享实录|一文读懂区块链整体架构及应用方向yaoyao路是什么,走着走着就知道了1区块链概念及特征1、区块链的定义相较于区块链,大家似乎更了解比特币。区块链是一种技术,支撑和保障整个比特币的货币机制在这样一个分布式网络中运行,包括产生、流通、交易等等。简单来说它就是一个账本,在整个交易过程中,每产生一笔交易,大家都会记一笔账,认可这个交易是有价值的,这笔钱从这个账户通过某种方式转移到另一个账户,区块链就是保证这个交易数据实时和不可篡改的一个记录。从技术的角度来看,区块链是多种技术的整合。它不仅仅包括发币的制度,更重要的是分布式网络、加密技术、分布式数据存储技术等多种技术的组合。从数据存储的角度来看,区块链是一个分布式数据库。区块链网络中的所有参与的节点都在存储数据,每个人都有一个账本,这就解决了伪造和中心的问题。区块链完全使用分布式的网络。以前我们的金融交易系统更多的是中心化的,比如银行。我们的钱存到银行,过去很多年之后,银行可能说找不到那个存钱的记录了,这笔存款就作废了,这就是中心化的一个弊端,存在单点失效的问题。分布式存储就不会存在这样的问题,历史上产生过的每一笔交易,每个节点的账本都有记录。在区块链或者说比特币的结构中,每笔交易的信息,包括币的产生、币的交易,都会产生一个区块,区块里包括了交易信息和时间,通过时间戳、随机数和前一区块的哈希值算一个新的区块,新的区块中包括当前产生的交易内容、数额大小和整个区块大小,区块链就是这么来的。随着交易的增加,链会越来越长,链上的所有信息都不可删除不可篡改。如上图所示,交易数据随时可以回溯,任何一步都可以验证曾经发生过的交易。区块链中每笔交易的流程都要经过上图所示的这七步,第三步就是所谓的“挖矿”。假如有笔交易是Alice要给Bob发送2个比特币,就代表着网络上这2个比特币的权属会发生转移。首先Alice发起交易,向全网广播,让全世界人都知道Alice要给Bob2个比特币,广播之后所有节点接收到这个消息,矿工知道生意来了:现在有一个新的交易。于是所有矿工开始挖矿。前面我们说每笔交易都会记录到区块里去,怎么记进去、由谁来记呢?矿工挖矿就是去争取记账的权利,他争取到记账权后,要确认这笔交易是否正常,确认后把交易信息打包放到区块里,生成新的区块,做完这些事情之后系统会奖励给他比特币,同时还会给他一定的交易费。挖矿的奖励加上交易费组成矿工的收益。这个记账权需要矿工通过计算来争取,矿工需要在最快的时间内通过一个随机数加上时间戳、前一区块的内容、本次交易的数据等计算出一个值小于给定的难度目标,(这个难度目标是根据上一个区块的计算难度、时间和全网的算力情况来决定的),而要找到这个值,并没有固定算法,只能靠计算机随机的哈希碰撞。随机数可以变化,而且要从0试到最大值2^32。第一个算出来的人把得到的结果放到区块上让大家都认可即达成共识,经过连续6-7次确认即可认为这笔交易是可靠的,该矿工也就可以得到奖励,比特币是在挖矿的过程中产生的。交易被打包进区块,并放到了链上,交易双方不可以反悔或赖账,因为交易经过了全网广播、全网验证。这就是比特币的产生和交易流程。2、区块链的特征开放、共识区块链是一个分布式网络,任何人都可以参与到网络中来,所有节点都是平等的,都拥有一份账本,以共识机制通过竞争来维护区块。去中心、去信任完全分布式的端到端的网络,没有一个中心化的设备,节点之间无需互相信任。交易透明、匿名交易规则公开透明,交易数据公开,每笔交易都会经过全网广播,大家都能看到和参与验证交易的发生,同时所有参与节点都是匿名的。不可篡改、可追溯大部分节点同时确认新增区块,整个区块链上的数据只能增加,不能删除,不能篡改,通过这样的一个机制来保证在节点匿名和无需信任的状态下建立一种信任。因为每个区块都包含了上一区块的信息,所以每笔交易都是可追溯的。3、区块链的核心技术区块链包括四个核心技术:共识机制,即前面提到的算力的证明,矿工怎么争取记账权,大家如何达成一致。公钥机制,即交易产生的时候怎么验证身份。在区块链里我们用公钥机制来进行签名、加密和身份验证。分布式存储,保证整个账本及交易的公开透明。数字化合约,即我们所说的智能合约。4、区块链分类根据应用场景不同,区块链可以分为三类:公有链、联盟链和私有链。公有链,比如比特币、以太坊等,所有节点都可以参与。联盟链,部分节点可加入,需要通过联盟的审核和授权。比如大型金融机构之间建立联盟链。私有链,一般在企业内部使用。5、解决信任区块链的整个设计思想就是为解决信任问题。分布式网络、全部节点共同记账、共识机制等都是为了解决“在一个网络中大家没有信任的情况下如何保证交易的可信”的问题。从技术层面来看,多方参与,即分布式网络当中所有节点都参与,每次交易矿工通过计算竞争记账权,保证记账机会每个节点都公平拥有,而且计算结果需要经过大部分节点验证才能证明是有效交易并写入区块,个人修改或改变数据不影响整个账本的交易数据,保证交易的可信和不可篡改。从经济层面看,通过这种方式降低了交易成本,实际上很多交易成本就在于信任的建立。淘宝做起来的一个很重要的原因就是它通过支付宝这个第三方平台来做背书,解决了电子商务中交易信任的问题。区块链通过保证每笔交易都被记录、交易数据双方不能篡改、每笔交易都经过节点共识并可追溯,让交易可信,不用担心反悔或欺诈。2区块链技术架构1、区块链技术架构区块链技术架构可以分为以下几层:应用层,比如我们向钱包、客户端记账或转账。激励层,比如怎么挖矿、怎么分配比特币的机制。共识层,通过POW、权利证明等方式争取记账权。网络层,区块链主要是通过P2P网络来保证整个分布式网络当中的传播和验证机制。数据层,包括区块数据怎么生成、数字签名、哈希计算、整个链式结构的生成、以及非对称加密。最核心的是交易的生成,上图所示是实际的一个区块的产生过程,每个区块都有它的前一个区块,通过前一个区块的信息结合当时交易发生的时间戳以及随机数进行计算,求得一个小于目标难度值的数,通过其他节点认证,大家认可就生成一个新的区块哈希值,写到新的区块中。每一个区块都是这么产生的,在整个交易链条中环环相扣。因为每个区块中都包含上一个区块的信息,因此它可以从后往前追溯,同时不可篡改。上图是实际发生的一笔交易,块的高度等都在里面,能够实现快速检索是谁算出的随机数、广播的是谁、广播的内容和时间等信息。而所有用户都是匿名的,这也是比特币交易在黑市流行的一个很重要的原因。激励层就是发币的机制,前面提到任何一笔交易广播后,所有节点都会去争抢记账权,获得记账权完成记账后就会有奖励,比特币就是通过挖矿奖励产生。比特币的总量也不是无穷的,每四年减半。当比特币全部产生之后,矿工的收益就只有交易费,这也是比特币不会导致通胀的原因。区块链技术中最核心的是共识机制,共识机制是获取记账权的凭证。共识机制包括:POW,工作量证明,即通过算力争夺记账权。POS,权益证明,谁拥有的比特币越多,获得记账权的概率就越大。BFT,拜占庭容错协议,实际上整个共识机制就解决了所谓的拜占庭将军问题,少数节点不会影响多数节点的共识。了解一下比特币的双花,这是比特币或者区块链面临的一个安全问题。还是刚才的例子,Alice要给Bob2个比特币,从Bob那买一千克黄金,Bob答应了,Alice在网上公布说要跟Bob发生一笔交易:Alice用2个比特币买Bob的一千克黄金。而Alice具有足够的算力,网络公布之后,大家去计算,算出来之后会生成一个新的区块放到上面,因为全网确认需要一段时间,在这个过程中Alice撤销了,又告诉全网说我要把这2个比特币给第三个人不给Bob了,然后又在全网广播,节点收到新的交易消息又开始挖矿,也算出来一个数,这样的话就会发生分叉,其他节点在同步账本的时候就会面临两个新的区块选择哪一个的问题。区块链里的机制是选择长的链,所以前面说到需要在5-6个区块后才能确认交易可靠,节点根据这个长的链同步数据,短的链就被撤销掉了,以此来共同来维护这个账本。解决这个问题我们需要在确认的时候有一个延时的机制,也就是说当延时一定程度之后再确认,使得它在这个时间当中不可能快速地去创建一个更长的链来撤销这个交易,这是时间也是根据当前整个网络的算力来估计的。理论上有双花的可能,但实际上发生的概率非常低。回顾一下比特币的交易机制。首先交易输出,比如我要从我的钱包里拿出2个比特币来进行交易,我要先对这两个比特币进行锁定,再告诉全网我要发起这笔交易,这2个比特币属于交易状态,即在交易中不能再交易,然后用公钥私钥进行加密和签名。然后是交易输入,支出方用私钥签名和加密,接收方同时用公钥加密,完成双重加密后,由矿工打包区块、节点完成共识,验证交易后,双方共同用公钥和私钥进行验证并解密,完成交易。也就是说整个交易过程中,首先是对交易账户中的余额即交易的内容做锁定,双方确定之后再解锁,然后从账户里扣除掉想要的交易数和手续费。2、区块链应用架构体系设计这是整个区块链的应用架构体系设计图,我们可以根据这样的思路构建一个应用:首先是区块链协议,整个账本怎么建立、账本状态怎么更新、账本历史怎么证明、账本当中节点怎么更新、智能合约指令如何保证智能合约引擎。其次组件模型是实现这些协议的内容,包括共识网络、账本、持久化引擎、合约引擎等。最上面是服务平台,包括网关、服务、节点网络、SDK、工具等。简单展开介绍一下。三大块:区块链协议,我们自己开发相应的区块链技术和应用的时候,一定要定义自己的区块链协议,比如账本怎么建立、区块怎么构建、奖励怎么设置、账本怎么操作、账本的数据怎么更新、怎么计算等。基于这样的一个协议,来开发相应的支持账本和状态更新、历史证明、账本添加等的组件。最后再提供服务平台。在协议设计时有3个原则:面向业务。一定要面向我们的具体业务,利用区块链的思想解决具体业务中的什么问题,要解决什么问题决定了这个账本应该怎么设计。标准化。我们的业务一般会涉及多个主体,这种情况下我们应该尽量让区块链协议标准化,解决各个主体之间数据交互的问题。松耦合和模块化。定义模块间清晰的接口,实现模块之间的松耦合,以此获得整个系统的扩展性,满足不同用户和场景的需要,采用可插拔的模块组件。区块链应用模型设计,包括3步:定义身份。所有参与这个链的节点的身份都要通过某种方式来验证。编写智能合约。账户验证的同时,我们要使得交易正常进行的话,需要把参与者之间达成的商业协议以智能合约代码的形式进行定义。智能合约最核心的是提高效率,降低交易的可替代性。之前合约的签订具有主观性,容易产生违约的情况,智能合约是通过代码的形式统一规则,保证只要满足合同所约定的条件就会自动执行,谁也不能更改。签署智能合约。智能合约最后需要经过参与者以各自的身份账户做出签署,之后每一方参与者只需要根据业务范围内的业务进程做出相应的操作,触发智能合约执行。确定了应用模型后,我们进行区块链应用账本协议设计。账本协议是从数据的角度定义模型。账本数据的标准格式:包括账本状态、账户的历史证明等。读写账本数据的指令的标准格式:包括账本操作集、合约指令集。再来看区块链应用组件模型设计,区块链应用组件模型包括共识网络、账本、持久化存储、合约引擎。共识网络包括算法的使用和共识过程两方面。共识网络中共识算法可以根据整个应用的业务需求来设定,只要满足标准化和具备不可伪造性的条件,可以通过网络当中参与的节点证明它所有的权益就可以。共识过程包括怎么证明交易在网络上扩散;如果发生两个节点具备同样能力的情况,怎么进行交易排序;在产生交易的时候如何调用交易执行程序;如何对交易结果进行全网共识?如何提交共识结果生成块?账本。账本状态和合约分离,使用基于身份的访问控制协议约束合约对状态的访问,这种将数据和逻辑分离的设计模式是典型的贫血模式,可为上层业务逻辑提供无状态的逻辑抽象。持久化存储。利用成熟的NoSQL数据库实现持久化存储。合约引擎。前端包括合约高级语言规范及其工具链;后端提供轻量级合约中间代码执行环境。最后来看区块链应用服务层设计。区块链网关,包括私钥管理、隐私保护、协议转换。区块节点服务,包括账号管理、节点进入网络的认证授权、账本数据访问框架、网络当中整个交易的事件通知机制、智能合约管理等。区块链共识网络,由共识节点组成的网络,基于P2P网络和共识算法确保交易数据在节点之间保持一致。工具,配套的工具集合包括SDK、数据管理、安装部署工具、监控服务。3区块链应用解析1、区块链适合解决哪些问题?第一类:业务开展需要跨主体合作。也就是需要很多个单位或业务部门合作并且有很多流程的时候,区块链可以解决多主体之间的信任问题,提升交易效率。对于此类问题目前的一种解决方式是:有一个中心化的节点去协调业务开展,各方存在成本分摊及数据隐私的问题,成本较高,且参与各方不愿意把自己的数据贡献出来。另外一种是SOA方式,因为要打通各业务方之间的数据,技术比较负责,方案缺少通用性,只能解决当前特定业务领域的问题,难以支持复杂业务。以上两种方式都难以防止数据被篡改。利用区块链可以做到:共有数据,通过加密的方式既保证了数据的隐私也可以做到防篡改,利用分布式和数字化合约的特点能够将一些业务层面的协调解决问题放在技术层面解决,更高效灵活客观。第二类:对方参与并需要低成本信任。参与的节点很多,节点之间验证或构建信任的成本又要比较低。第二类问题需要多方参与同时又要求低成本信任。首先要解决数据可信的问题。传统的方式是数据由中心节点强势持有,比如传统的银行等,数据可信由数据持有者的商业或社会信用来保证,只能建立主观的可信;区块链结合密码学哈希和数字签名,以区块链的形式将数据变更历史结合,通过共识协议使得参与方共同拥有数据,多方持有相同数据副本,并数据被签名确认,数据变得可信。其次是合约履行。通过智能合约的方式,使得整个业务方之间确定的这种合同协议自动化客观地执行,只要满足条件,合约就会自动执行,降低履行成本,确保高效履约,一般的契约是事后以人的主观意愿来执行,智能合约是在触发条件被满足后,由计算机程序来保证合约及时执行,具有客观性。最后是历史可证明。固话交易历史,并提供对交易历史的追溯查询,保证交易的不可篡改和不可抵赖,保留参与交易各方可信的历史记录。第三类:业务存在长周期交易。第三类问题是业务过程存在长交易、长周期链条。最典型的就是供应链,业务在多个主题之间流转,难以确定间接主体的真实性和有效性,由于多主体间业务隔离,难以延伸出多级业务。区块链从技术上保证整个长交易、长周期链条的各参与主体身份真实,数据可信,实现信用多级传递,提升业务效率。2、区块链应用生态圈区块链应用最典型的场景是金融,包括跨境支付、保险、政权、股权登记等。跨境支付方面,目前市场上跨境支付存在中心节点的问题,商业机构之间对账导致跨境交易时间变长,一笔交易对账可能需要几天的时间。保险理赔方面,以前保险理赔需要准备很多材料经过各种核实,过程很长。通过智能合约的应用,既无需投保人申请,也无需保险公司批准,只要触发了理赔条件就能事先自动理赔和支付。整个理赔过程会在区块链上向全网广播,因为区块链数据不可篡改不可造假的特点,还能大大较低骗保的概率。政券交易方面,将股权整合进区块链中成为数字资产,可实现无需通过中介机构直接发起权属转移等交易。票据方面,借助分布式高容错性和非对称加密算法可实现票据价值的去中心化传递,较低对传统业务模式中票据交易中心的依赖,降低系统中心化带来的运营和操作风险。区块链在公共服务领域的应用主要是文化、教育、产权登记、医疗健康等方面。文化方面,主要是版权保护。3、区块链技术在国内外布局4、区块链技术应用解析:共享经济接下来举个典型的应用案例:Airbnb。Airbnb是一个P2P房屋共享平台,最大的问题是房主和房客之间的信任。房主会担心住进来的这个人不安全,房客去到一个陌生的地方同样会担心这个房子或房东的安全。快速解决信任问题,目前的方式是用户注册账户之后要做一个身份验证,网站会保证所有用户都是实名的。房客会通过线上交流的方式对房东和房子的情况做一些了解,同时房东也会对房客进行考察,这个人的信用怎么样、有没有租过房子、什么背景、要不要租房子给他等等。这个过程会很长,因为这是个全球化的平台,还涉及到时区的问题,一个交易有时候可能会需要20-30小时来确认。确认后预定交易最后互评,整个过程非常长。这种方式存在的痛点包括:房主和顾客交流耗费大量时间;评价房主、顾客和房屋存在困难,会有类似刷单的行为;支付和担保速度慢。区块链技术恰恰是针对解决信任问题,信任问题解决后所有痛点也将迎刃而解。比如快速在房东和顾客之间建立信任,就可以缩短交流时间,甚至可以不用交流。入住就将钱打给房东也就解决了支付和担保的问题。信任怎么建立呢?通过区块链的方式每一个交易都在区块链的网络中进行,所有人都可以看到交易的整个过程,顾客身份信息的提交经过匿名化的加密处理,通过签名来保证账户信息的有效性,预定的时候通过加密机制保证预定的安全,验证预定可信后整个交易会让网络中的所有节点知晓,信用也会在交易中体现并记录,取消或伪造交易的作恶行为同样也会被记录在网络中,成为下次交易的判断依据。同时会有一个智能合约,触发入住条件后自动将钱打给房东。最后评价机制设置上通过区块链的方式保证评价的可追溯、不可篡改和不可伪造。从三个方面解决整个交易的信任问题,同时也提升了交易效率。5、区块链应用解析:供应链物流供应链中存在两个比较明显的痛点:信息不透明、不流畅,交易效率低;纠纷处置难,举证追责难。我们通过区块链技术保证整个物流的每个环节都生成一个块,形成每一步都可溯源的链。解决思路是:首先各方交易数据公开透明,加快信息流提升效率;其次交易数据不可篡改,便于举证和追责;最后交易数据可追溯,杜绝虚假交易和假冒伪劣。区块链在供应链的两个应用场景:物流和溯源防伪物流方面主要是:利用数字签名机制保证无法伪造签名,防止货物丢失冒领;通过真实身份证生成数字化身份证,既能保护个人隐私,又能落实实名制度;简化物流流程。溯源防伪方面主要是:数据完整性和不可篡改;商品交易全流程记录;贵重物品的防伪溯源。内容来源:HiBlock区块链线下沙龙西安站 赵建强老师的分享《区块链整体架构及应用案例分析》本文编辑:CynthiaHiBlock区块链社区线下沙龙西安站视频回放:http://www.itdks.com/eventlist/detail/2090以下是我们的社区介绍,欢迎各种合作、交流、学习:)编辑于 2018-06-04 23:27区块链(Blockchain)金融​赞同 5​​添加评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录HiBlock区块链社区HiBlock区块

区块链_区块链技术架构_区块链典型技术架构-华为云

区块链_区块链技术架构_区块链典型技术架构-华为云

检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn 不再显示此消息 中国站 中国站 简体中文 International English Bahasa Indonesia Español Português Türkçe عربي ไทย 简体中文 日本語 Europe English Deutsch Español Français 华为云App 活动 产品 解决方案 定价 云商店 合作伙伴 开发者 支持与服务 了解华为云 清空最近搜索 热门搜索 云耀云服务器L实例 免费试用 云服务器 域名 云速建站 “”的所有结果 文档 备案 控制台 账号中心 费用与成本 待支付订单 待续费产品 未读消息 工单管理 管理控制台 注册 登录 登录 注册 购物车 admin 帐号中心 未实名认证 已实名认证 费用与成本 待支付订单0 待续费产品0 未读消息0 伙伴中心 云商店买家中心 云商店卖家中心 工单管理 开发者个人中心 个性化推荐管理 管理控制台 admin 退出登录 取消 清空最近搜索 热门搜索 云耀云服务器L实例 免费试用 云服务器 域名 云速建站

区块链典型技术架构

区块链典型技术架构

区块链技术发展到今天,面向不同的业务场景和技术需求,涌现出了非常多的链,每种链根据自身的需要发展出了不同的架构,本章介绍其中区块链架构中比较经典的六层架构。

区块链技术发展到今天,面向不同的业务场景和技术需求,涌现出了非常多的链,每种链根据自身的需要发展出了不同的架构,本章介绍其中区块链架构中比较经典的六层架构。

立即购买

帮助文档

什么是区块链?

根据工信部指导发布的《区块链技术和应用发展白皮书》的解释:狭义的讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证不可篡改和不可伪造的分布式账本。广义来讲,区块链技术是利用链式数据结构来验证和存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全性、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算模式。顾名思义,区块链(blockchain)是一种数据以区块(block)为单位产生和存储,并按照时间顺序首尾相连形成链式(chain)结构,同时通过密码学保证不可篡改、不可伪造及数据传输访问安全的去中心化分布式账本。区块链中所谓的账本,其作用和现实生活中的账本基本一致,按照一定的格式记录流水等交易信息。特别是在各种加密数字货币中,交易内容就是各种转账信息。只是随着区块链的发展,记录的交易内容由各种转账记录扩展至各个领域的数据。比如,在供应链溯源应用中,区块中记录了供应链各个环节中物品所处的责任方、位置等信息。区块链技术是一个技术合集,它包含共享账本、共识算法、安全隐私和智能合约等技术组成,具有多中心化、共识可信、不可篡改、可追溯等特性。

区块链典型技术架构

区块链模型自底向上分为基础设施层、数据层、网络层、共识层、合约层以及应用层。其中数据层、网络层、共识层是区块链的核心层级,是实现区块链的基础保障,缺一不可。基础设施层是区块链的构建基础,也是必不可少的。合约层是扩展层级,区块链的可编程性质主要通过该层来实现。应用层主要实现各种应用场景,并和具体的业务进行对接。

区块链的六层架构

1、区块链典型技术架构——应用层

区块链的应用层主要负责适配区块链的各类应用场景,为用户提供各种服务和应用,同时我们看到越来越多不同类型的客户端和工具现已支持区块链框架。客户端应用程序通常通过触发交易来启动整个业务工作流。指定节点调用智能合约层功能继续向底层执行相应的功能。客户端应用程序可以使用任何软件编程语言来实现,主流的有Java、Golang、Python等,并且可以运行在各种操作系统中。应用程序既可以使用任何区块链框架实现所提供的命令行接口(CLI)工具,也可以使用特定编程语言的软件开发工具包(SDK)与网络上的节点通信。用户在开发客户端时,只需要关注自己的业务逻辑,调用相应接口封装并发送消息即可,不需要关注底层消息发送接收的具体过程。在以容器方式和虚拟机方式承载的智能合约诞生之前,区块链的应用十分有限,主要集中在加密数字货币上。随着区块链技术的演进,早已超越其传统的基于加密数字货币的网络形象,同时智能合约的发展为应用层的丰富带来了福音。尽管区块链现在还没有完全成熟,但是近几年已经有一大批的应用浮现。区块链应用涉及金融、供应链、医疗、教育、政务等领域,在可预期的未来,区块链应用必定会像PC和手机应用一样普遍。

2、区块链典型技术架构——合约层

智能合约(Smart Contract)并不是区块链首创的概念。早在1993年,跨领域学者Nick Szabo就提出了智能合约的概念,他对智能合约的定义为: “一个智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议。”简单来说,智能合约是一种在满足一定条件时,就自动执行的计算机程序。例如,自动售货机就可以视为一个智能合约系统,客户需要选择商品,并完成支付,这两个条件都满足后,售货机就会自动吐出货物。合约在生活中处处可见,如租赁合同、借条,等等。传统合约依靠法律进行背书,当产生违约及纠纷时,往往需要借助法院等政府机构的力量进行裁决。智能合约不仅仅是将传统的合约电子化,它的真正意义在于,革命性地将传统合约的背书执行由法律替换成了代码。俗话说“规则是死的,人是活的”,程序作为一种运行在计算机上的规则,意味着它会被严格执行。区块链系统中的合约层主要负责智能合约的功能和实现。简单来说,智能合约是一段在区块链上存储、验证和执行的代码,被认为是第二代区块链的技术核心。它是区块链从虚拟货币、金融交易协议到通用工具发展的必然结果。目前几乎所有的区块链技术公司都已在其产品中支持智能合约产品,例如,以太坊基于虚拟机的智能合约平台、基于Bitcoin区块链的RSK平台,IBM 公司提出的企业级Hyperledger Fabric平台等,这些产品的推出极大地丰富了智能合约技术的内涵和范围,为区块链技术在不同领域的现实应用奠定了基础,也代表了区块链未来发展的方向。以Fabric为例,智能合约模块主要完成智能合约的生命周期管理,以及交易背书过程。智能合约生命周期管理包括智能合约的安装、启动、更新、销毁。交易背书过程包括合约服务调用、状态数据访问以及交易构造等关键技术功能。智能合约不仅是区块链上的一段可执行代码,而且是封装了智能合约语言、运行环境以及与系统账本直接交互的相关过程方法的一个完整的计算系统,且支持被应用程序调用,被调用时智能合约会自动执行合约功能。智能合约可以操作账本中的状态,这些状态记录着与业务相关的数据。区块链系统可以部署多个智能合约,应用程序通过名称、版本号来指定具体调用哪个智能合约。

3、区块链典型技术架构——共识层

区块链系统是一个高度去中心化的系统,各节点需要维护相同的账本数据。但在现实网络环境中,节点数据的一致性面对诸多威胁: 网络消息可能存在阻塞、丢包或重传,节点运行可能宕机或错误,同时系统面临“女巫攻击”“双花攻击”等潜在风险。如何在如此复杂的网络环境中保证各节点数据的一致性,是共识算法需要解决的主要问题。共识层是区块链系统的核心,主要封装了区块链节点间协同运行的各类共识算法,并利用这些共识算法实现高安全性、去中心化、去信任化等特性。首先,共识算法需具备高安全性,即使在存在节点崩溃甚至恶意攻击风险的网络中,仍然需要确保正常节点之间就特定数据达成一致; 其次,共识算法是去中心化的,支持多个节点组成分布式共识集群,共同参与交易的验证与执行,无须依赖中心化的第三方就能正常运转; 最后,共识算法是去信任化的,共识节点之间并不需要彼此信任,而是只要参与共同的共识机制,就能最终达成对账本的一致认知。共识层承担着保障分布式节点对特定交易达成一致的使命,为此,共识层需要承担交易验证、排序,区块生成、验证的功能。区块链系统运行时,会收到来自多个客户端的交易请求,共识层首先要对海量交易安排确定的执行顺序,确保任意节点都能按相同顺序执行交易。同时,为了提高共识效率,通常共识层会将一批交易数据进行打包,从而批量进行共识,一批打包好的交易数据会被存储到区块结构中,在共识集群内广播。当其他共识层节点收到区块后,需要对区块的合法性与其中众多交易的合法性进行独立验证,对于验证不合法的区块或交易,节点有权拒绝执行,以抵御可能存在的恶意攻击;如果区块与交易在该节点校验通过,共识层会按指定的交易顺序请求合约层对交易进行执行,并将执行结果发送到数据层,发起数据更新的请求,最终会由数据层完成交易结果的持久化。一般而言,为了降低系统的复杂度,共识过程中通常会由特定节点承担交易排序与区块生成的职能,这些特定节点往往被称为“记账节点”或“出块节点”。这些特定节点可能由竞争、投票、随机指定等不同策略产生,而这些策略往往正是决定区块链共识层执行效率、公平性乃至安全性的核心。在进行共识层的设计时,首先需要重点考虑的是共识协议的选择。当前业界的共识协议种类繁多,在安全假设、性能和可扩展性等方面各有侧重。例如,在公有链场景中,由于节点可自由加入、退出,无须进行身份认证,因此共识算法大多是以证明类的算法为主,共识的效率较低,共识结果往往是非确定性的,为了吸引节点参与网络交易的见证,通常还会设置激励机制。而在联盟链的场景中,以多中心化的应用场景为主,因此在共识算法的选择上更加关注性能,通常选择经典分布式共识中的拜占庭容错共识算法,但在共识节点的扩展性方面则不那么友好。其次,为了实现区块链系统的可持续演进,良好的工程设计非常重要。例如,为提升系统的可维护性,可以考虑组件化设计,共识协议与区块链系统松耦合,进而实现共识协议的插拔式替换。

4、区块链典型技术架构——网络层

与TCP/IP定义的网络层不同,在区块链系统中,网络层实现了分布式组网机制、消息传播协议和数据验证机制。在绝大多数区块链系统中,网络层都采用了点对点组网的方式,区块链中节点可以自由地组网,任意两个节点之间通过消息传播协议实现消息和交易的传播。每个节点都承担了网络路由、验证区块数据以及传播区块数据的功能。经过一段时间后,在整个区块链网络中的每个节点都具有同样的数据。P2P组网方式有如下特点:• 节点之间采用扁平化拓扑结构进行连接,不存在任何中心化的节点和层级结构。• 节点的地位相互平等,每个节点均承担了节点发现、网络路由、传播区块、验证区块等功能。数据通过消息传播协议在区块链网络中传播。不同的区块链系统采用的消息传播协议不同,例如,比特币系统和Fabric系统采用了Gossip协议,以太坊系统采用了Kademlia协议。网络中的每个节点都会进行消息监听,当发现新数据后会使用数据校验机制进行校验,并根据校验通过与否来决定是否继续传播。数据验证机制保证传播的数据是可验证的。不同的区块链系统,校验的数据内容也略有不同。通常来说,会对数据结构、数据长度、共识证明、数字签名和时间戳等字段进行校验。

5、区块链典型技术架构——数据层

数据层主要描述区块链的物理形式,是最底层的技术。本节主要从数据结构、数据存储方面进行总体介绍。

1)数据结构在数据结构的设计上,现有的区块链平台借鉴了Haber与Stornetta的研究工作,基于时间戳、哈希、数字签名等技术,为了实现数据的不可篡改性,形成以区块为单位的链式结构。不同区块链平台在数据结构的具体细节上虽有差异,但整体上基本相同。以比特币为例,每个区块由区块头和区块体两部分组成,区块体中存放了自前一区块之后发生的多笔交易; 区块头中存放了前块哈希(PreBlockHash)、随机数(Nonce)、默克尔根(Merkle Root)等。

2)数据存储在数据存储的设计上,由于区块链式结构数据需要在磁盘上进行持久化,通常会以文件形式存储,也有部分区块链系统使用数据库形式存储。文件存储更方便以日志形式的追加操作,数据库存储则更容易实现增删改查功能。比特币、Fabric的区块链式结构以文件形式存储,其索引数据存储在LevelDB数据库; 以太坊的区块链式结构与索引都存储在LevelDB数据库。除了存储区块链式结构数据,以太坊、Fabric还都基于LevelDB 构建了状态数据库(World State)以存储账户余额或业务状态数据。在基于账户模型的区块链平台中,交易数据被打包进区块且经共识算法确认后,先追加写入区块链式结构,而后写入状态数据库。当新的节点加入区块链网络时,为了和已有节点数据保持一致,新节点需要同步区块链式结构数据以达到全网区块的高度,同时,状态数据库也需和全网同步。为了让更多常规计算能力的个人计算机节点加入区块链网络,以充分实现去中心化的理念,比特币和以太坊都选择了LevelDB数据库存储索引或状态数据,因为LevelDB是轻量级的单机数据库,无须安装部署且写入性能高效。但是基于 LevelDB数据库的架构方案显然无法满足企业级的业务需求(如高并发访问、Non-Key查询、复杂查询等),因此,很多区块链系统平台提供了插件化的数据访问机制,其除了支持LevelDB数据库,还额外支持CouchDB分布式数据库、SQL等关系型数据库等。

6、区块链典型技术架构——基础设施层

基础设施层为应用层、合约层、共识层、网络层和数据层提供其所需的计算、存储和网络等资源。为了使基础设施层满足多租户、弹性、稳定可靠和安全等需求,技术上必须进行资源的池化管理。即通过虚拟化技术将资源虚拟化形成资源池,然后根据用户的需求弹性分配,同时确保安全和隔离。根据资源类型的不同,基础设施层主要进行计算的虚拟化、存储的虚拟化和网络的虚拟化。

1)计算资源计算资源为区块链系统的运行提供数据处理能力。传统的计算资源设备主要为x86处理器和ARM 处理器。而在当前业界主流的区块链系统中,一种新的可为代码提供更安全的可信执行环境TEE得到了越来越广泛的应用。TEE全称Trusted Execution Environment,即可信执行环境。它是CPU 上的一块区域。这个区域的作用是给数据和代码执行提供一个更安全的空间,并保证它们的机密性和完整性。具体的TEE实现技术有Intel的SGX和ARM 的TrustZone。另外,GPU 在数据并行处理方面和轻量级运算方面有着强大的能力,而区块链系统的交易处理过程中存在着大量的加验签和加解密处理,正是符合这两方面特点的场景,因此也得到了一定的应用。计算的虚拟化技术相对已经比较成熟了,主流的虚拟化软件有XEN、KVM、VMware等,但是在性能、稳定性方面还有所欠缺,有待于进一步的优化和完善。

2)存储资源存储资源为区块链系统的运行提供数据存储服务。区块链系统需要存储的数据主要是账本数据,账本数据类似于日志,以一定的顺序记录着系统发生的每一笔交易,以文件的形式存储在磁盘上。在部分区块链系统中,为了便于数据的快速查询,系统还维护了一份状态数据,通常通过数据库的方式进行存储。存储的虚拟化当下还比较稚嫩,业界还没有一个比较成熟的开源系统。存储虚拟化主要分文件型存储虚拟化和块设备存储虚拟化。文件型存储的实现基本都大同小异,主要受GFS的思路启发具体实现的,如Openstack的Swift。而块设备存储则百花齐放,Nova Volume、盛大云和UCloud都各自实现了块设备存储。此外,最近业界非常热门的SDS(软件定义存储),本质上也是一种存储虚拟化。

3)网络资源网络资源为区块链系统的运行提供数据传输服务。区块链系统是天然的分布式系统,节点之间不可避免地要进行数据传输,如交易的发送、共识协议的运行以及区块的广播与同步等,都依赖网络资源。为了保证节点之间能够高效、安全地进行通信,节点之间的数据传输需要具备足够的带宽和较小的时延。光纤通信的普及以及5G 的到来,很大程度上解决了带宽不足的问题。网络的虚拟化旨在一个物理网络资源上创建出多个虚拟子网,从而实现对网络资源更方便的管理。简单来讲,就是将一个大的物理网络分割成多个逻辑子网,各个逻辑子网之间相互独立,实现多租户隔离,从而实现网络的弹性伸缩,以提高网络资源利用率。结合网络切片技术,一方面,大幅提高了网络资源利用率,实现弹性的网络; 同时也为数据传输的服务质量(Quality of Service,QoS)保证提供了有力支撑。当下最常见的网络虚拟化技术方案是SDN(软件定义网络),SDN实现了物理网络的管理,网络资源的虚拟化和网络隔离,使得网络虚拟化的实现更加方便和灵活。

区块链典型技术架构——跨层功能

跨层功能提供了跨越多个层次的功能组件,根据对外提供的功能,大体可分为开发、运营、安全、治理与审计几大类别。开发组件主要是为了支撑区块链服务开发方的开发活动,包括区块链服务的集成开发环境、编译构建工具、测试验证工具和相应的环境。集成开发环境提供了用于区块链系统、智能合约及相关应用的开发、调试和部署等服务。编译构建工具用于构建可发布的软件包,该软件包既包含用于服务实现的软件,也包含相关的配置元数据和配置脚本。测试验证工具能对区块链的所有服务进行测试,并生成相应的测试报告,帮助开发者提前发现问题并及时修复。在当前业界大多数区块链平台中,都提供了在线可视化的配套工具集。运营组件主要包括与区块链操作相关的管理功能,用于管理和控制提供给用户使用的区块链服务,包括成员管理、策略管理、异常管理、跨链服务管理等。成员管理主要用于联盟链场景,通常负责管理成员真实身份和链上身份的对应关系,设置相关数据的访问权限。策略管理提供了区块链服务的定义、更新和访问策略以及针对这些策略的管理能力,包括用于区块链服务本身及其使用的业务、技术、安全、隐私和认证等策略。异常管理提供了系统的运行监控能力,用于及时发现问题,通过分析,及时处理问题并产生异常报告。跨链服务管理提供了区块链系统之间、区块链与业务系统之间互联互通的连接和访问能力,包括系统的注册、服务请求和连接、身份认证等功能。安全组件是区块链的重要基础,为区块链的各层功能以及层与层之间的数据通信提供机密性、完整性、可用性和隐私保护的基本功能。安全组件提供身份与认证管理、授权管理、安全策略管理、隐私保护等功能。身份与认证管理提供用户身份的确认能力,确定用户是否具有对某种资源或某一数据的访问权限,进而有效地保证区块链系统的访问控制策略能够得到有效执行。授权管理和安全策略管理负责对用户访问某种资源授予权限,制定某一安全区域内的访问规则。隐私保护功能主要是保护区块链应用中用户身份和交易内容等敏感信息不被泄露或非法获取,相关信息仅在获得授权后才能被访问。治理和审计组件是根据区块链服务关联方的治理要求,使区块链服务符合可治理与可审计的特性集合。治理组件需保证系统满足治理机构对区块链服务的环境、系统、可用性、灾备、系统运维、所支持业务的合规性等方面的规定,支持通过事前准入控制、事中权限控制、事后追溯等技术手段实现治理目标,保证记录不可篡改、可追溯与可稽核。审计组件实现区块链网络的审计内控、责任鉴定和事件追溯等方面的要求,以有效的技术手段,配合业务所属的行业标准进行精确的审计管理。

区块链相关职业培训

层次化培训体系,助您提升专业技能,成就职场新机遇

活动规则

活动对象:华为云电销客户及渠道伙伴客户可参与消费满送活动,其他客户参与前请咨询客户经理活动时间: 2020年8月12日-2020年9月11日活动期间,华为云用户通过活动页面购买云服务,或使用上云礼包优惠券在华为云官网新购云服务,累计新购实付付费金额达到一定额度,可兑换相应的实物礼品。活动优惠券可在本活动页面中“上云礼包”等方式获取,在华为云官网直接购买(未使用年中云钜惠活动优惠券)或参与其他活动的订单付费金额不计入统计范围内;活动对象:华为云电销客户及渠道伙伴客户可参与消费满送活动,其他客户参与前请咨询客户经理活动对象:华为云电销客户及渠道伙伴客户可参与消费满送活动,其他客户参与前请咨询客户经理活动时间: 2020年8月12日-2020年9月11日活动期间,华为云用户通过活动页面购买云服务,或使用上云礼包优惠券在华为云官网新购云服务,累计新购实付付费金额达到一定额度,可兑换相应的实物礼品。活动优惠券可在本活动页面中上云礼包123等方式获取,在华为云官网直接购买(未使用年中云钜惠活动优惠券)或参与其他活动的订单付费金额不计入统计范围内;活动对象:华为云电销客户及渠道伙伴客户可参与消费满送活动,其他客户参与前请咨询客户经理活动对象:华为云电销客户及渠道伙伴客户可参与消费满送活动,其他客户参与前请咨询客户经理活动时间: 2020年8月12日-2020年9月11日活动期间,华为云用户通过活动页面购买云服务,或使用上云礼包优惠券在华为云官网新购云服务,累计新购实付付费金额达到一定额度,可兑换相应的实物礼品。活动优惠券可在本活动页面中“上云礼包”等方式获取,在华为云官网直接购买(未使用年中云钜惠活动优惠券)或参与其他活动的订单付费金额不计入统计范围内;活动对象:华为云电销客户及渠道伙伴客户可参与消费满送活动,其他客户参与前请咨询客户经理

确定

华为云区块链培训服务

面向不同需求的政府与企业中高层、CXO、企业从业人员、院校学生、开发人员等客户提供区块链技术培训、区块链高研班、区块链政务沙龙等系列培训

了解详情

区块链专家服务

提供专属区块链开发实践指导和咨询,以“场景分析,技术培训,架构设计,系统开发和系统上线”全面指导为设计思路,协助客户高效、低成本的上线高质量的区块链应用系统

了解详情

区块链更多推荐

区块链入门

了解区块链更多信息

区块链入门

区块链白皮书

区块链应用场景

区块链优势

区块链功能

区块链基本概念

区块链关键核心技术

区块链优惠

区块链实践

区块链平台搭建及问题解决

区块链特征

搭建区块链系统

区块链常见问题

区块链最佳实践

区块链开发指南

区块链API参考

区块链通道管理

区块链实例部署

数字资产链学习

学习区块链应用于数字资产相关的技术和内容

数字资产入门

数字资产链用户指南

数字资产链SDK参考

数字资产链优势

数字资产链功能

数字资产标识的用途

数字资产标准协议

数字资产链计费问题

7*24 多渠道服务支持 备案 提供免费备案服务 专业服务 云业务全流程支持 退订 享无忧退订服务 建议反馈 优化改进建议 热门产品 云服务器 云速邮箱 域名注册 云速建站 华为云App 售前咨询热线 950808转1 技术服务咨询 售前咨询 sales@huaweicloud.com 备案服务 beian@huaweicloud.com 云商店咨询 partner@huaweicloud.com 下载华为云App 关注我们 关注华为云 4000 955 988 950808 华为云微信 扫描二维码 华为云微博 扫描二维码 华为云App 扫描下载华为云App 售前咨询:950808转1 法律声明 隐私政策 长按/截图保存,微信识别二维码或者关注公众号“华为云” 关于华为云 了解华为云 客户案例 信任中心 法律协议 新闻报道 华为云直播 热门产品 免费体验中心 云服务器 盘古大模型 SSL证书 华为云WeLink 云速建站 支持与服务 自助服务 服务公告 支持计划 智能客服 联系我们 举报中心 实用工具 文字识别 漏洞扫描 域名注册 华为云会议 定制建站 云服务健康看板 友情链接 华为官网 华为消费者业务 华为开发者联盟 华为企业业务 华为商城 黄大年茶思屋 法律声明 隐私政策 ©2024 Huaweicloud.com 版权所有 黔ICP备20004760号-14 苏B2-20130048号 A2.B1.B2-20070312 域名注册服务机构许可:黔D3-20230001 代理域名注册服务机构:新网、西数 电子营业执照 贵公网安备 52990002000093号

从概念到底层技术,一文看懂区块链架构设计!-阿里云开发者社区

从概念到底层技术,一文看懂区块链架构设计!-阿里云开发者社区

产品解决方案文档与社区权益中心定价云市场合作伙伴支持与服务了解阿里云售前咨询 95187-1 在线服务售后咨询 4008013260 在线服务其他服务 我要建议 我要投诉更多联系方式备案控制台开发者社区首页探索云世界探索云世界云上快速入门,热门云上应用快速查找了解更多问产品动手实践考认证TIANCHI大赛活动广场活动广场丰富的线上&线下活动,深入探索云世界任务中心做任务,得社区积分和周边高校计划让每位学生受益于普惠算力训练营资深技术专家手把手带教话题畅聊无限,分享你的技术见解开发者评测最真实的开发者用云体验乘风者计划让创作激发创新阿里云MVP遇见技术追梦人直播技术交流,直击现场下载下载海量开发者使用工具、手册,免费下载镜像站极速、全面、稳定、安全的开源镜像技术资料开发手册、白皮书、案例集等实战精华插件为开发者定制的Chrome浏览器插件探索云世界新手上云云上应用构建云上数据管理云上探索人工智能云计算弹性计算无影存储网络倚天云原生容器serverless中间件微服务可观测消息队列数据库关系型数据库NoSQL数据库数据仓库数据管理工具PolarDB开源向量数据库热门Modelscope模型即服务弹性计算云原生数据库物联网云效DevOps龙蜥操作系统平头哥钉钉开放平台大数据大数据计算实时数仓Hologres实时计算FlinkE-MapReduceDataWorksElasticsearch机器学习平台PAI智能搜索推荐人工智能机器学习平台PAI视觉智能开放平台智能语音交互自然语言处理多模态模型pythonsdk通用模型开发与运维云效DevOps钉钉宜搭支持服务镜像站码上公益

开发者社区

Java技术栈

文章

正文

从概念到底层技术,一文看懂区块链架构设计!

2021-12-15

923

版权

版权声明:

本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《

阿里云开发者社区用户服务协议》和

《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写

侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

简介:

区块链作为一种架构设计的实现,与基础语言或平台等差别较大。区块链是加密货币背后的技术,是当下与 VR 虚拟现实等比肩的热门技术之一,本身不是新技术,类似 Ajax,可以说它是一种技术架构,所以我们从架构设计的角度谈谈区块链的技术实现。无论你擅长什么编程语言,都能够参考这种设计去实现一款区块链产品。与此同时,梳理与之相关的知识图谱和体系,帮助大家系统的去学习研究。

开发工程师

目录

热门文章

最新文章

为什么选择阿里云什么是云计算全球基础设施技术领先稳定可靠安全合规分析师报告产品和定价全部产品免费试用产品动态产品定价价格计算器云上成本管理解决方案技术解决方案文档与社区文档开发者社区天池大赛培训与认证权益中心免费试用高校计划企业扶持计划推荐返现计划支持与服务基础服务企业增值服务迁云服务官网公告健康看板信任中心关注阿里云关注阿里云公众号或下载阿里云APP,关注云资讯,随时随地运维管控云服务售前咨询:95187-1售后服务:400-80-13260法律声明及隐私权政策Cookies政策廉正举报安全举报联系我们加入我们阿里巴巴集团淘宝网天猫全球速卖通阿里巴巴国际交易市场1688阿里妈妈飞猪阿里云计算AliOS万网高德UC友盟优酷钉钉支付宝达摩院淘宝海外阿里云盘饿了么© 2009-2024 Aliyun.com 版权所有 增值电信业务经营许可证: 浙B2-20080101 域名注册服务机构许可: 浙D3-20210002 京D3-20220015浙公网安备 33010602009975号浙B2-20080101-4

【笔记】区块链的系统架构、数据结构及运行机制_区块链架构图-CSDN博客

>

【笔记】区块链的系统架构、数据结构及运行机制_区块链架构图-CSDN博客

【笔记】区块链的系统架构、数据结构及运行机制

最新推荐文章于 2022-10-29 00:00:12 发布

Time-space

最新推荐文章于 2022-10-29 00:00:12 发布

阅读量1w

收藏

50

点赞数

6

分类专栏:

区块链

文章标签:

区块链

区块链系统

区块链系统架构

区块链的演化

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/cbwem/article/details/104443267

版权

区块链

专栏收录该内容

9 篇文章

1 订阅

订阅专栏

文章目录

一、区块链的系统框架1.区块链的系统架构与运行2.数据层、网络层与共识层3.激励层、合约层与应用层

二、区块的概念和识别1.区块与区块头2.区块的识别

三、创世区块与区块的连接1.创世区块2.区块的连接

四、区块链的数据结构1.区块链的结构基础2.哈希值、梅克尔根等数据及作用3.难度确认、运行及其作用4.时间戳、随机数及其作用

五、区块链的工作流程与机制1.步骤与防止分叉2.安全、透明与不可篡改的系统机制

六、从区块链1.0到区块链3.0的演化1.区块链的进化2.区块链1.03.区块链2.04.区块链3.0

一、区块链的系统框架

1.区块链的系统架构与运行

  区块链的系统架构,主要是由数据层、网络层与共识层构成的底层网络,由数字货币、智能合约与其他“去中心化”组织等构成的应用层。下图为区块链的系统架构图。   区块链是一个去中心的、分散式的网络账本,所以其系统架构也符合网络的基本特点。该网络账本构成一个系统,该系统最底层、最基础的是数据结构。这个结构就是将信息和数据采用一定的方式、格式组织起来,输入到区块链系统中并由其处理。当统一方式的数据输入后,网络层便开始连链接,在全网的节点之中进行广播、验证,然后在共识层中由全网达成共识而构建起区块。所有区块进行“组装”,最终构建起各种系统产品的运行平台,如公有链、私有链与联盟链等。而数字货币、智能合约、去中心化组织等都是区块链平台上运行的产品。

  在区块链的系统架构中,各个层次以交易为中心构建起一个完整的相互关联的循环体系,这一循环模式是这样的:   首先,应用层的数字货币、智能合约等产品对于底层网络来说,传输的全是数据,即应用层相当于数据层的数据输入源。这些数据必须进入数据层,按照区块链的格式进行封装。   其次,在数据封装完成后,就进入分布式(P2P)网络进行广播,由全网节点通过一定机制进行确认。   最后,当全网达成共识之后,区块构建完成并连接到主链之上,完成一次完整交易的流程,并开始下一次交易的循环。

  这一循环过程,从技术角度讲,区块链中的区块是一种记录交易的数据结构,反映了一笔交易的资金流向。系统中已经达成交易的区块连接在一起形成了一条主链,所有参与计算的节点都记录了主链的信息,区块所承载的任务数据具体包括:交易双方私钥、交易数量、电子货币数字签名等。前一个区块形成的散列用来将区块连接起来,实现过往交易的顺序排列。随机数是交易达成的核心,所有“矿工”节点竞争计算随机数,最快得到答案的节点生成一个新的区块,并广播到所有节点进行更新,如此完成一笔交易,然后开始新的循环。

2.数据层、网络层与共识层

  数据层封装了底层数据区块的链式结构以及相关的非对称公私钥数据加密、时间戳等技术,这是整个区块链技术中最底层的数据结构。

  网络层包括分布式组网机制、数据传播机制和数据验证机制等,由于采用了完全的P2P组网技术,意味着区块链具有自动组网功能。

  共识层主要包括封装网络节点的各类共识机制算法。共识机制算法是区块领导核心技术,决定了到底有谁来记账,而且记账者选择的方式将会影响整个系统的安全性和可靠性。知名的有**工作量证明机制(PoW)、权益证明机制(PoS)、委托权益证明机制(DPoS)**等。

3.激励层、合约层与应用层

  激励层将经济因素集成到区块链技术体系中,主要包括经济激励的发行机制和分配机制,该层主要出现在公有链、私有链中。激励机制往往也是一种博弈机制,让更多节点愿意遵守规则。

  合约层主要封装各类脚本、算法和智能合约,是区块链可编程特性的基础。

  应用层封装了区块链的各种应用场景和案例。 在该模型中,基于时间戳的链式区块结构、分布式节点共识机制、基于共识机制的经济激励和灵活可编程的智能合约是区块链技术最具代表性的和创新点。

二、区块的概念和识别

1.区块与区块头

  区块是区块链的基本组成单元,它由一个包含元数据的区块头和紧跟其后的构成区块主体的一系列交易组成。 区块的基本数据结构如下表所示。   区块头由三组区块元数据组成。 第一组元数据引用父区块哈希值的数据,这组元数据用于将该区块与区块链中前一区块相连接。第二组元数据,即难度、时间戳和随机数(Nonce),其与挖矿竞争相关。第三组元数据是梅克尔树根,一种用来有效地总结区块中所有交易的数据结构。区块头的数据结构如下表所示。

2.区块的识别

  区块可以通过两种方式被识别:区块哈希值或区块高度。   区块主标识符是它的加密哈希值,通过安全散列算法-256(SHA-256)对区块头进行二次哈希计算而得到的数字指纹,所产生的“32字节”哈希值被称为区块哈希值。区块哈希值可以唯一、明确地标识一个区块,并且任何节点通过简单地对区块头进行哈希计算都可以独立地获取该区块哈希值。   区块哈希值可能会作为区块元数据的一部分被存储在一个独立的数据库表中,以便于索引以及更快地在在磁盘中检索区块。

  区块在区块链中的位置即区块高度,区块高度可以识别区块。   区块高度和区块哈希值不同之处在于,一个单一的区块有一个固定、明确的区块高度,但是两个或两个以上的区块也可能有相同的区块高度,并在区块链里争夺同一位置。一个区块的区块哈希值能唯一地识别一个特定的区块,但一个区块高度却不一定能识别出唯一的区块。

三、创世区块与区块的连接

1.创世区块

  创世区块是区块链里面所有区块的共同祖先,意味着从任一区块循链向后回溯,最终都将到达创世区块。 每一个节点都“知道”创世区块的哈希值、结构、被创建的时间和里面的交易。   因此,每个节点都把该区块作为区块链的首区块,从而构建了一条安全的、可信的区块链根,每一个节点都包含创世区块,永远不会被改变。

2.区块的连接

  当某个节点接收到传入区块时,它会验证这些区块,然后链接到现有的区块链上。为了建立这个链接,该节点将检查传入的区块头并寻找该区块的“父区块哈希值”。   每个参与节点都可以保存整个区块链的副本,只要有参与节点存在,区块链数据就不会丢失。区块链上的每个区块都可以用来记录货币、股权、债券、数字签名、数字合约以及其他任何数字化内容。

四、区块链的数据结构

1.区块链的结构基础

  首先,区块链的数据结构是在SHA-256支持下实现的;其次,在区块对交易封装过程中,采用高效的梅克尔树算法,一步一步地将繁杂的信息进行归纳和简化;再次,为了保证区块的顺序链接,需要采用时间戳机制在区块中写入时间参数;最后,为了达成共识机制,并使全网参与的“挖矿”工作顺利进行,系统在PoW共识机制下采用了难度目标和随机数两种设计,保证系统在一个可靠的区间内运转。

2.哈希值、梅克尔根等数据及作用

  哈希算法将任意长度的二进制值映射为固定长度的较小二进制值,这个较小的二进制值称为哈希值。一段明文哪怕只更改一个字母,都将产生不同的哈希值。   哈希函数的单向、输出数据长度固定等特征使它可以生成消息或者数据,而且哈希算法和哈希值一般用于快速查找和加密算法。   哈希算法应用在区块中,既减小了区块存储的数据量,也不影响对数据的链接访问。

  每个数据区块包含区块头和区块体,区块头封装了当前版本号、前一区块哈希值、当前区块PoW要求的随机数(Nonce)、时间戳以及梅克尔根信息。区块体包括当前去看经过验证的、区块创建过程中生成的所有交易记录;这些记录就是通过梅克尔树的哈希过程生成唯一的梅克尔根后,并记入了区块头中。   梅克尔根,是指梅克尔树的根,因为梅克尔树在计算的过程中主要用到哈希算法,或称为梅克尔哈希树。

3.难度确认、运行及其作用

  工作量证明机制是一个可以让每个参与者参与交易验证的方式,为形成一个多方共同维护并共享同一份记录交易的账本,一个基于零信任基础、去中心化的P2P网络系统。   工作量证明是让任一参与节点花费时间和运算资源来计算一组数学公式的结果,一旦这个结果被计算出来,其他参与节点也可用相关的数学公式去验证这个值是否有效。进行PoW计算的过程也被形象地称为“挖矿”,参与节点被成称为“矿工”,计算过程如下:   每个区块的区块头包含许多固定值,只有随机数值为随机值,因此每个节点进行PoW计算时,通过不断替换这个随机值来让这个区块的区块头哈希值小于一个被设定好的难度目标值。当最接近难度目标值的哈希值产生后,该“矿工”可以向全网广播,如果同意时间获得超过51%节点的认可,意味着该“矿工”完成了一个新区块,可以将其链接到区块链上,其他“矿工”再以这一个区块为父区块进行下一个区块的运算。

  区块链中的难度值,是指节点要运算出低于难度目标值的哈希值,平均花费的时间,即平均要完成一次PoW计算所用的时间。   比特币的难度值是可以动态调整的,目前每产生2016个区块会调整一次难度值,以每10分钟产生一个区块估算,大约每两周会调整一次难度值。难度值的调整是由每个完整结点肚子自动发生的,每达到2016个区块后,所有结点都会按统一的公式自动调整难度值。

新难度值公式:新难度值 = 旧难度值 x (20160分钟 / 过去2016个区块花费时长)目标值(Target)的计算公式:目标值 = 最大目标值 / 难度值

  目标值的大小与难度值成反比。 比特币工作量证明的完成,是以“矿工”计算出来的区块哈希值小于目标值且最接近于目标值为判断标准。

4.时间戳、随机数及其作用

  时间戳,能表示一份数据在某个特定时间之前已经存在的、完整的、可验证的数据,其通常是一个字符序列,能够唯一地标识某一刻时间。 在区块链中采用了“unix”时间计数方式,由时间戳服务器为每一个区块加上的时间序列,记录了该区块的产生时间。   比特币挖矿的目标就是找到一个随机数,使在这个值下的区块头的SHA-256哈希值输出必须小于设定的难度值,“矿工”通过不停地变更区块头中的随机数,并对每次变更后的区块头做双重SHA-256运算,将结果只与当前网络的目标值作对比,如果小于目标值,则工作量证明完成,区块创建成功。

五、区块链的工作流程与机制

1.步骤与防止分叉

  区块链的工作步骤:

发送节点将新的数据记录向全网进行广播。接受节点对收到的数据记录信息尽心验证,如记录信息是否合法,通过检验后,数据记录将被纳入一个区块中。全网所有接受结点对区块执行共识算法,包括工作量证明、权益证明等。区块通过共识算法过程后被正式纳入区块链中存储,全网节点均表示接受该区块,新区块将以该区块链为基础进行延长。

  全网广播,实际上不需要让全网所有节点收到,只要大部分节点收到即可。对于那些没有收到的、丢失的区块,区块链系统是具有容错能力的,如果某节点没有收到特定区块,当节点发现自己缺失区块时,可以提出自己下载区块的请求。   节点始终都将最长的区块链视为正确的链,并持续以此为基础进行验证和延长。 当其中一条被证实为较长,那么在另一条分支链条上工作的节点将转换阵营,开始在较长的链条上工作,由此防止了区块链的分叉。

2.安全、透明与不可篡改的系统机制

  时间戳把数据区块的内容与数据区块本身联系起来,其重要意义在于其使数据区块形成了新的结构。这个新的结构使各个区块通过时间线有序地连接起来,形成了区块的链条,因此才成为区块链。   通过给数据记录印上时间标签,使每一条数据记录都具有唯一性,从而使数据记录本身在区块和区块上的位置进行精确定位且可回溯,也给其他的校验机制发挥协同作用提供了极大的便利性和确定性,使整个区块链网络能够确定性地验证某条数据记录是否真实。

  区块链网络是一个公开的、难以攻破的、不可篡改数据记录和制造虚假数据的诚实可信的系统。   关键技术包括两个方面:一是数据加密机制;二是共识算法。   在数据加密机制中,一方面要有一个私钥,另一方面要使用哈希算法等。   共识算法,是区块链中节点保持区块数据一致、准确的基础,主流共识算法包括工作量证明(PoW)、权益证明(PoS)、委托权益证明(DPoS)等。

六、从区块链1.0到区块链3.0的演化

1.区块链的进化

  划分方式1:   区块链1.0是以比特币为代表的数字货币应用,其场景包括之父、流通等;区块链2.0结合数字货币与智能合约,对金融领域的更广泛场景和流程进行优化的应用;区块链3.0则超出金融领域,旨在为各种行业提供去中心化解决方案。   划分方式2:   区块链1.0是可编程的数字货币;区块链2.0是可编程的智能合约;区块链3.0是可编程的社会治理。

2.区块链1.0

  区块链1.0主要是支撑虚拟货币的应用,包括转账、汇款、数字化支付以及加密货币,比特币就是区块链1.0的代表,也是最成功的数字货币。   区块链1.0的实质就是可编程的数字货币。 主要应用领域为“加密数字货币”,包括货币的发行机制、分配机制、币值调节机制等。   比特币可视为区块链首个在金融支付领域的应用,也是应用最广泛的公有区块链。

3.区块链2.0

  区块链2.0是可编程的智能合约。 主要应用领域为智能合约,智能合约能够令各方自动执行操作,结果由软件验证,而非人类扮演中介。   区块链2.0的典型应用包括:(1)股权、债券合约;(2)证券与金融合约;(3)糊住保险合约;(4)权利登记、转让;(5)博彩;(6)防伪;(7)物联网等。

4.区块链3.0

  区块链3.0可看作可编程的社会治理。   总体有两大类应用:

超越货币、经济、市场的公正性应用。超越货币、经济、市场的效率和协作。

  区块链3.0是价值互联网的内核。区块链能够对每一个互联网中代表价值的信息和字节进行产权确认、计量和存储,从而实现资产在区块链上可被追踪、控制和交易的目的。   价值互联网的核心是由区块链构造一个全球性的分布式记账系统,它不仅能够记录金融业的交易,而且几乎可以记录任何有价值的能以嗲吗形式进行表达的实物。实现信息的兹证明,不再依靠某个或第三人或机构获得信任或建立信用;实现信息的共享,通过解决信任的问题来提高整个系统的运作效率。

  区块链3.0的主要应用在社会治理领域,例如:

供应链自动化管理自动化采购智能化物联网应用产权登记虚拟资产兑换、转移

优惠劵

Time-space

关注

关注

6

点赞

50

收藏

觉得还不错?

一键收藏

知道了

1

评论

【笔记】区块链的系统架构、数据结构及运行机制

文章目录一、区块链的系统框架1.区块链的系统架构与运行2.数据层、网络层与共识层3.激励层、合约层与应用层二、区块的概念和识别1.区块与区块头2.区块的识别三、创世区块与区块的连接1.创世区块2.区块的连接四、区块链的数据结构1.区块链的结构基础2.哈希值、梅克尔根等数据及作用3.难度确认、运行及其作用4.时间戳、随机数及其作用五、区块链的工作流程与机制1.步骤与防止分叉2.安全、透明与不可篡改的...

复制链接

扫一扫

专栏目录

区块链-参考架构.pdf

07-27

区块链作为一种新兴的应用模式,在金融服务、供应链管理、文化娱乐、智能制造、社会公益和教育就业等领域有着广泛的应用价值。近几年来,区块链技术和应用正经历快速发展的过程。与此同时,国内国际上区块链领域的标准仍属空白,行业发展碎片化,行业应用存在一定的盲目性,不利于区块链的应用落地和技术发展。区块链的标准化有助于统一对区块链的认识,规范和指导区块链在各行业的应用,以及促进解决区块链的关键技术问题,对于区块链产业生态发展意义重大。目前,国内外标准化组织已将区块链标准化提上议事日程,开展了组织建设、标准预研等一系列工作,并初步取得了一定进展。

常见区块链基础架构

qq_41547320的博客

07-07

1万+

本文根据当前网络上大家熟知的公链和联盟链,介绍下区块链的整体架构。

一、基础原理架构技术层面,区块链的结构如下图所示。一条区块链上有多个区块,每个区块包括区块头与区块体。区块头中主要包括版本号、前一区块哈希值、时间戳、随机数、目标哈希、默克尔根;区块体中是通过默克尔树记录的账本信息。

这个主要是展示的区块链原理的技术架构,接下来,主要介绍组织架构及层级。二、早期的区块链架构

区块链技术刚提出的时候,在架构上通常被分为6层或者4层,6层的概念即数据层、网络层、共识层、激励层、合约层和应用层,下图为区块链技术早

1 条评论

您还未登录,请先

登录

后发表或查看评论

区块链技术之Fabric逻辑架构详解

phymat.nico的专栏

04-04

1211

一、架构图

该图出自区块链技术指南一书,架构解释也主要出自于本书,有兴趣的同学可以去自行找一找资源。

如图所示:fabric的底层主要由四种服务构成,分别是:身份服务、策略服务、区块链服务、智能合约服务。在这些基础服务之上,通过一些API、SDK、CLI为上层业务应用提供一些可以编程的接口服务。

二、服务详解

2.1身份服务

首先明确一点,fabric和比特币与以太坊的最大的区别在于其身份识别能力...

一文看懂区块链架构设计

热门推荐

lucky_greenegg的专栏

10-15

8万+

转自:http://www.8btc.com/ebook-blockchain

前言

区块链作为一种架构设计的实现,与基础语言或平台等差别较大。区块链是加密货币背后的技术,是当下与VR虚拟现实等比肩的热门技术之一,本身不是新技术,类似Ajax,可以说它是一种技术架构,所以我们从架构设计的角度谈谈区块链的技术实现。

无论你擅长什么编程语言,都能够参考这种设计去实现一款区块链

西安电子科技大学081201 计算机系统结构数据结构笔记.zip

03-25

西安电子科技大学081201 计算机系统结构数据结构笔记.zip

区块链的结构和原理

weixin_42419611的博客

11-03

1万+

区块链的结构和原理

文章目录区块链的结构和原理区块链原理区块链结构关于区块链的几个问题结语

区块链原理

区块链是一个链表,链表上存有交易信息,所有人共享同一个链表,因此它也是一个没有管理员的分布式数据库,即去中心化数据库,所有人都能加入这个数据库,并且可以读取任意块,也可以在区块链尾加入块,但无法修改已有块,新块加入后所有人的链表都将更新。采矿就是在链表中加入新块。

区块链结构

图 1:区块链的一个例子,它由连续的块序列组成

图 2:块结构

块由块头和块体组成:

块头包含:

Block versio

区块链的数据结构

ling1998的博客

03-12

1万+

1、区块链的基本概念

2、区块链的基础技术架构

3、常见概念

4、区块链网络

5、区块链去中心化的特点

6、区块链数据结构

区块链(Block Chain)结构解析

Wesley's Blog

05-14

2万+

定义

狭隘定义:区块链是一个公共账本(Public ledger),一个按照时间顺序排序的交易记录

广义定义:区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法.

区块链的组成

区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构

区块的结构

每个Bloc...

产业区块链生态架构图

10-29

1293

导读:长三角地区作为产业区块链发展的战略新高地,在上海市静安区、苏州市相城区、南京市鼓楼区和杭州市余杭区形成核心集聚,引领长三角地区和全国产业区块链快速发展。根据产业区块链生态中各相关方所产生功能的不同可将产业区块链生态分成四个层级:底层、中间层、应用层以及服务层。一、底层底层是产业区块链生态中的基础层,为区块链应用的开发提供区块链底层架构平台,根据统计显示,共有12个区块链底层平台入选。由于区块...

《区块链 参考架构》

12-01

《区块链 参考架构》标准规定了区块链参考架构(BRA)。规定了以下内容:区块链参考架构涉及的用户视图、功能视图;用户视图所包含的角色、子角色及其活动,以及角色之间的关系;功能视图所包含的功能组件及其具体功能,以及功能组件之间的关系;以及用户视图和功能视图之间的关系。

2021年系统架构复习笔记(按章节).docx

03-18

复习笔记涵盖了近10年架构师考试历年真题所有知识点,并补充了XS培训班辅导资料内容,适合有一定基础但没有太多时间去翻阅教材、总结归纳的同学,帮你快速获得通过考试所需的知识储备。

考研初试408《数据结构》详细笔记

03-30

考研自用笔记,根据网课视频等详细做的笔记。内容为考研初试408《数据结构》的笔记,十分详细,文字笔记+配图说明,一刷、二刷、三刷都很适用,建议结合课本配套食用。

加油加油,在座各位都是研究生!! o((>ω< ))o

区块链分类与架构模型-学习笔记

01-20

一、分类

        1)第一种分类:根据区块链运行过程中是否需要中心节点或者权限优势节点授权,可将区块链划分为无许可区块链(Permissionless Blockchain)和许可区块链(Permissioned Blockchain).

        (1)无许可区块链:是一种完全去中心化的分布式账本技术,运行节点自由加入和退出,无须通过中心节点注册、认证和授权。

        (2)许可区块链:存在一个或多个节点具有较高权限,这些节点可以是可信第三方,也可能节点之间仍然互不信任、需要协商制定区块链维护规则和访问控制权限,只有经过相应功能授权的节点才可访问数据、参与系统维护。

 

Java数据结构学习笔记

12-18

Java数据结构学习笔记

【基础篇】理解区块链的结构及其设计原理

qq_42200107的博客

05-03

2109

国内目前已经有众多关于区块链、比特币等的新闻和文章,但大多只是粗浅的讲述了“区块链是去中心化的分布式账本”等概念,且在去中心化、加密货币等方面大做文章。

对比国外在区块链技术原理、技术改进和内在逻辑等的讨论,国内的新闻媒体、大佬和所谓的三点钟区块链群等,还多集中在绿皮火车化的讨论,一些深层次的讨论文章实在是少之又少。

我每每在回顾并感慨区块链近几年的快速发展时,总是在思考:如果我是中本聪的话,当初为何会想到要提出区块链的概念?我为何会引入哈希(Hash)函数、创造比特币呢?又为何会想到用PoW的共识模型

区块链的六层模型

weixin_34235457的博客

06-16

1756

区块链技术的模型是由自下而上的数据层、网络层、共识层、激励层、合约层和应用层组成。

首先是“数据层”,封装了底层数据区块的链式结构,以及相关的非对称公私钥数据加密技术和时间戳等技术,这是整个区块链技术中最底层的数据结构。这些技术是构建全球金融系统的基础,数十年的使用证明了它非常安全的可靠性。而区块链,正式巧妙地把这些技术结合在了一起。

其次是“网络层”,包括P2P组网机制、数据传播...

区块链架构1.0、2.0与3.0梳理

tiandiwuya的专栏

07-30

2万+

区块链发展的三个阶段:比特币为代表的货币区块链技术为1.0、以太坊为代表的合同区块链技术为2.0、实现完备权限控制和安全保障的Hyperledger项目代表3.0。

一、区块链1.0架构 –数字货币

1、基本架构

2、BTC(比特币)

定义

比特币是由系列概念和技术作为基础构建的数字货币态系统。

比特币并不是线下法定货币的替代物,而是非法定货币当局发行和管理的,主要模仿...

区块链体系架构

qq_45637889的博客

01-09

1万+

区块链技术经过多年的发展,它们在实现上各有不同,但是在整体架构上是大体上相同的。

区块链平台整体上可以划分为网络层、共识层、数据层、智能合约层以及应用层五个部分。

一、网络层

区块链平台通常选择完全分布式且可容忍单点故障的P2P协议作为网络传输协议。

区块链节点具有平等、自治、分布等特点,所有节点以扁平拓扑结构互相连接,不存在任何中心化的权威节点,每个节点都有路由发现、广播交易、光播区块以及发现新节点等功能。

二、共识层

去中心化的区块链由多方共同管理维护,部分节点可能并不可信,因而需要更为适合分布式结构

中国首个区块链标准《区块链参考架构》

Master 林

12-19

1万+

参考:《区块链参考架构》

考研高分笔记数据结构

最新发布

08-22

《考研高分笔记 数据结构》是《高分笔记系列书籍》之一,旨在辅导计算机考研学生学习和理解数据结构。这本书于2010年夏天诞生,由一群考生合作完成的。它的主要目的是帮助考生系统地掌握数据结构的知识,并提供一些...

“相关推荐”对你有帮助么?

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

Time-space

CSDN认证博客专家

CSDN认证企业博客

码龄8年

阿里巴巴本地生活

140

原创

3万+

周排名

206万+

总排名

35万+

访问

等级

4843

积分

277

粉丝

427

获赞

55

评论

2232

收藏

私信

关注

热门文章

【笔记】AOE网与关键路径

46450

【干货】软件安装报“不能注册DLL/OCX:RegSvr32失败;退出代码Ox3”

16785

【精华】安卓开发学习路线规划

16348

【练习】舞伴配对问题

12475

【笔记】CPU的结构和功能(一)

11580

分类专栏

区块链

9篇

设计模式

2篇

后端开发

8篇

密码学

2篇

分布式系统

3篇

数据结构

42篇

计算机组成原理

16篇

Android开发

14篇

数据结构

24篇

组成原理

16篇

技术干货

6篇

编程语言

2篇

基础整理

19篇

软件工程

4篇

随笔小练

22篇

平面设计

5篇

材料科学

2篇

其他杂谈

1篇

最新评论

【精华】安卓开发学习路线规划

chargez:

老哥有推荐的视频吗?只有书吗

【笔记】区块链的系统架构、数据结构及运行机制

haoma2772:

讲的很棒

【笔记】AOE网与关键路径

LCIWalt:

在有多条关键路径的情况下

【笔记】AOE网与关键路径

LCIWalt:

代码有误

会出现没有路径也作为路径的情况

【笔记】AOE网与关键路径

Lqh154157:

可以正常运行吗

您愿意向朋友推荐“博客详情页”吗?

强烈不推荐

不推荐

一般般

推荐

强烈推荐

提交

最新文章

【笔记】工厂方法模式

【笔记】单例模式

【精华】安卓开发学习路线规划

2020年27篇

2019年18篇

2018年33篇

2017年64篇

目录

目录

分类专栏

区块链

9篇

设计模式

2篇

后端开发

8篇

密码学

2篇

分布式系统

3篇

数据结构

42篇

计算机组成原理

16篇

Android开发

14篇

数据结构

24篇

组成原理

16篇

技术干货

6篇

编程语言

2篇

基础整理

19篇

软件工程

4篇

随笔小练

22篇

平面设计

5篇

材料科学

2篇

其他杂谈

1篇

目录

评论 1

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

区块链架构及开源技术有哪些? - 知乎

区块链架构及开源技术有哪些? - 知乎首页知乎知学堂发现等你来答​切换模式登录/注册技术架构区块链(Blockchain)许子敬区块链架构及开源技术有哪些?区块链架构及开源技术有哪些?显示全部 ​关注者17被浏览8,570关注问题​写回答​邀请回答​好问题​添加评论​分享​7 个回答默认排序李留白​北京航空航天大学 软件工程硕士​ 关注Hardhat框架是专门为以太坊智能合约开发设计的开发环境。它提供了一套工具和实用程序,可以更轻松地在以太坊网络上编译、测试和部署智能合约。借助 Hardhat,开发人员可以使用以太坊最流行的编程语言 Solidity 编写智能合约,并利用自动合约测试、合约调试等高级功能,以及与 VSCode 和 Truffle 等流行开发工具的集成。除了其核心功能外,Hardhat 还提供了一系列插件,可进一步扩展其功能。这些插件涵盖了广泛的用例,从安全和审计到工具和集成。例如,Hardhat Security 插件提供了一个高级安全分析工具,可以检测智能合约中的常见漏洞,而 Hardhat Network 插件使开发人员能够创建自定义测试环境来模拟真实世界的网络条件。Hardhat Etherscan 插件等其他插件提供与流行的以太坊区块链浏览器的轻松集成,使开发人员能够轻松验证已部署的智能合约并与之交互。凭借其广泛的插件系统,Hardhat可以进行定制,以满足任何以太坊开发项目的需求,使其成为所有技能水平的开发者的绝佳选择。Hardhat的好处集成Hardhat框架对Ethereum智能合约开发的好处很多。一个主要的好处是它与其他流行的Ethereum开发工具集成。Hardhat 旨在与 Truffle 和 Remix 等工具无缝协作,使开发人员能够利用每个工具的最佳功能。Hardhat 还与 VSCode 和 Vim 等流行的代码编辑器集成,使其能够轻松编写、测试和部署智能合约而无需离开编辑器。测试使用 Hardhat 的另一个主要好处是其先进的测试能力。Hardhat 带有一个内置的测试框架,使开发人员能够为其智能合约编写全面的测试套件。这些测试可以在本地或远程网络上运行,确保智能合约在部署到以太坊网络之前经过全面测试。Hardhat 还支持自动化测试,这可以节省开发人员的时间并提高其智能合约的整体质量。自动化Hardhat 还为自定义任务和工作流提供广泛的支持。开发者可以使用 Hardhat 任务系统自动执行重复性任务,例如编译合约、运行测试以及将合约部署到以太坊网络。Hardhat 还支持自定义脚本和工作流,可用于创建满足项目特定需求的复杂开发环境和工作流。这种灵活性使开发人员能够更高效地工作并适应不断变化的项目需求。安全性最后,Hardhat 框架最重要的好处之一是它对安全性的关注。Hardhat 旨在确保智能合约安全可靠,具有自动安全分析和广泛审计功能等功能。例如,Hardhat Security 插件可以分析智能合约并检测常见的安全漏洞,而 Hardhat Network 插件使开发人员能够模拟真实世界的网络状况并确保他们的智能合约按预期执行。这些功能有助于确保使用 Hardhat 开发的智能合约安全可靠,这对于处理敏感数据或金融交易的项目至关重要。Hardhat的核心功能1. 测试:Hardhat 提供了一个强大的测试框架,可以轻松地为您的智能合约编写和运行测试。该测试框架建立在流行的 Mocha 测试库之上,包括诸如合约部署和交易模拟等常见任务的测试助手、确定性合约测试和气体消耗报告等功能。2. 部署:Hardhat 可以轻松地将您的智能合约部署到不同的以太坊网络。该框架包括对流行的以太坊网络(如以太坊主网、Rinkeby 和 Kovan)的内置支持,并且可以轻松配置以与自定义网络一起使用。Hardhat 还包括一个强大的部署脚本系统,允许您使用 JavaScript 编写自定义部署脚本。3. 调试:Hardhat 包含一个内置调试器,可以轻松调试您的智能合约。调试器可用于逐步执行合约、检查变量和合约状态,以及诊断合约代码的问题。该调试器与流行的代码编辑器(如 Visual Studio Code)集成,并支持使用 Solidity 和 Vyper 编程语言进行调试。Hardhat的实施安装和初始化1. 安装 Node.js:Hardhat 是基于 Node.js 构建的,因此第一步是在本地计算机上安装 Node.js。您可以从官方网站**http://nodejs.org[1]**下载并安装最新版本的 Node.js。2. 安装 Hardhat:安装 Node.js 后,您可以通过在终端中运行以下命令,使用节点包管理器 (npm) 安装 Hardhat:npm install --save-dev hardhat此命令将 Hardhat 安装为项目中的开发依赖项。初始化 Hardhat 项目:安装 Hardhat 后,您可以通过在终端中运行以下命令来创建新的 Hardhat 项目:npx hardhat init该命令在一个名为my-hardhat-project的新目录下创建一个新的Hardhat项目。你可以用你选择的名字替换my-hardhat-project。探索项目:初始化完成后,您可以通过在终端中运行以下命令来探索项目目录:cd my-hardhat-project

ls这会将您的目录更改为新的项目目录并列出该目录的内容。您的文件夹结构如下所示:my-hardhat-project/

├── contracts/

│ ├── .gitkeep

├── test/

│ ├── sample-test.js

├── scripts/

│ ├── sample-script.js

├── artifacts/

├── cache/

├── node_modules/

├── .gitignore

├── hardhat.config.js

├── package.json

└── README.md就是这样!您现在已经在本地计算机上安装并初始化了 Hardhat。您可以使用 Hardhat 开始构建您的去中心化应用程序。配置/**

* @type import('hardhat/config').HardhatUserConfig

*/

module.exports = {

solidity: {

version: "0.8.0",

},

networks: {

hardhat: {},

localhost: {

url: "http://localhost:8545",

},

},

};确保你的配置文件看起来像这样。在 solidity version 中,写下你正在使用的 solidity 版本。智能合约在合同文件夹中,删除现有合同并创建一个新的**.sol**文件。在文件中,编写以下智能合约。pragma solidity ^0.8.0;

contract BasicDemo {

uint256 private value;

function setValue(uint256 _newValue) public {

value = _newValue;

}

function getValue() public view returns (uint256) {

return value;

}

}这个智能合约称为 BasicDemo,包括两个功能:setValue和getValue。setValue函数要一个单一的参数_newValue ,用于更新value变量。getValue函数是一个view函数,这意味着它不会修改合约的状态,并且可以在不产生任何气体成本的情况下被调用。要使用此合约,需要使用 Hardhat 或 Remix 等工具将其部署到以太坊网络。部署后,可以调用setValue函数来设置变量的值,也可以调用getValue函数来检索当前值。这个智能合约非常简单,但它演示了 Solidity 智能合约的基本结构和语法。部署在脚本文件夹中,删除现有文件并创建一个新的deploy.js文件。将以下内容写入其中。const { ethers } = require("hardhat");

async function main() {

const BasicDemo = await ethers.getContractFactory("BasicDemo");

const basicDemo = await BasicDemo.deploy();

await basicDemo.deployed();

console.log("BasicDemo contract deployed to:", basicDemo.address);

}

main()

.then(() => process.exit(0))

.catch(error => {

console.error(error);

process.exit(1);

});该脚本首先从 Hardhat 库中导入ethers对象。然后它定义了一个async调用的main函数,该函数使用对象ethers的getContractFactory方法来检索BasicDemo智能合约的工厂。然后它调用工厂的deploy方法,将合约部署到本地网络。一旦合约被部署,该脚本会将其地址记录到控制台。要运行此脚本,请将其保存到在 Hardhat 项目的根目录中命名的deploy.js文件,然后运行以下命令:npx hardhat run deploy.js --network localhost这会将 BasicDemo 合约部署到在localhost[2] 上运行的本地 Hardhat 网络。如果部署成功,您应该会在控制台中看到合约地址。测试在test文件夹中,删除已有的文件,新建一个01_test.js文件,写入如下内容const { ethers } = require("hardhat");

const { expect } = require("chai");

describe("BasicDemo", function () {

let basicDemo;

beforeEach(async function () {

const BasicDemo = await ethers.getContractFactory("BasicDemo");

basicDemo = await BasicDemo.deploy();

await basicDemo.deployed();

});

it("should set the value", async function () {

const newValue = 42;

await basicDemo.setValue(newValue);

const value = await basicDemo.getValue();

expect(value).to.equal(newValue);

});

it("should get the default value", async function () {

const defaultValue = 0;

const value = await basicDemo.getValue();

expect(value).to.equal(defaultValue);

});

});该脚本使用 Chai 断言库为 BasicDemo 智能合约定义了一个测试套件。它包括两个测试:一个用于设置合约的值,另一个用于检索默认值。describe函数定义测试套件并使用beforeEach函数在每次测试前部署 BasicDemo 合约的新实例。这确保了每个测试都使用合约的新实例执行。第一个测试使用it函数定义一个测试用例,将合约的值设置为 42,然后使用getValue函数检索它。它使用 Chai expect函数断言检索到的值等于预期值 42。第二个测试类似,但它只是检索合约的默认值(即 0)并断言它等于预期值 0。要运行此脚本,请将其保存到以您的 Hardhat 项目test目录下命名的basicDemo.test.js文件中,然后运行以下命令:npx hardhat test这将执行basicDemo.test.js文件中的测试并将结果报告到控制台。如果测试通过,您应该会看到一条消息,表明所有测试都已通过。结论总之,Hardhat 是一个强大的开发框架,它提供了广泛的工具和功能,用于在以太坊区块链上构建、测试和部署智能合约。其测试和部署框架使开发和部署智能合约变得容易,而其内置的调试器允许高效的合约调试。此外,Hardhat 通过其插件实现的灵活性和可扩展性使其成为需要自定义其开发过程的开发人员的热门选择。总的来说,对于希望在以太坊网络上构建去中心化应用程序的开发人员来说,Hardhat 是一个强烈推荐的框架。原文:https://moayaan.hashnode.dev/hardhat-complete-guide引用链接[1] nodejs.org: https://nodejs.org/[2] localhost: http://localhost/发布于 2023-02-16 00:23​赞同​​添加评论​分享​收藏​喜欢收起​IT世界前沿​ 关注区块链可以称之为是一种分布式的共享账本和数据库。具有“去中心化、分布式存储、加密算法、全程留痕、可以追溯、集体维护、公开透明”等特点。那区块链的这些特点是怎么产生的呢?因为它有很多重要的“技术组件”,比如:哈希运算、分布式账本、非对称加密、共识机制、智能合约、默克尔树、电子签名等,这些“技术组件”为区块链创造信任奠定了基础。哈希运算通过哈希构建区块的链式结构,实现防篡改哈希运算(Hash Function)在区块链中,主要是让父区块的交易信息通过哈希运算得出一串哈希值,父区块的哈希值和子区块的交易信息(原始信息)组成一个链式结构,来确保数据的不可篡改,和确保在整个链上交易的唯一性。区块链里包含了自该链诞生以来发生的所有交易,因此要篡改一笔交易,意味着他之后的所有区块的父区块哈希全部要篡改一遍,这需要进行大量的运算。分布式账本每一个成员节点都可以共享和同步储存数据分布式账本(Distributed ledger)是一种在网络成员之间共享、复制和同步的数据库。分布式账本记录网络参与者之间的交易,比如资产或数据的交换没有中心管理员或集中数据存储。用于区块链中,每一个成员节点都可以独立、平等地存储完整的数据,确保存储数据的一致性,都可以参与监督交易合法性,同时也可以共同为其作证,确保数据的安全性。非对称加密采用密钥来保障数据安全和隐私非对称加密,也称为公钥密码,是一种加密算法,它采用了一对密钥(公钥和私钥)来加密和解密数据。公钥可以公开发布,任何人都可以获得;而私钥则只有密钥持有人知道。公钥和私钥是一一对应的,如果用公钥加密数据,只有用相应的私钥才能解密。反之,如果用私钥加密数据,只有用相应的公钥才能解密。因此,非对称加密算法可以实现安全的数据传输和数字签名等功能。非对称加密在区块链中是最重要的一种加密技术,可以保障存储在区块链上的交易信息是公开的,但是账户身份信息是高度加密的,只有在数据拥有者授权的情况下才能访问到,从而保证了数据的安全性和个人的隐私性。共识机制区块链事务达成分布式共识的算法共识机制(Consensus mechanism)是通过特殊节点的投票,在很短的时间内完成对交易的验证和确认;对一笔交易,如果利益不相干的若干个节点能够达成共识,我们就可以认为全网对此也能够达成共识。共识机制在区块链中,是确保交易有效性和一致性的关键机制之一,它通过算法和网络节点之间的协议来实现对于数据和交易的共识,确保所有节点对于区块链上的数据和交易达成一致,从而防止双重支付和其他恶意行为。智能合约基于区块链自动执行合约,执行结果不可篡改智能合约(Smart contract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议。用于区块链网络中,可以自动化的执行预先定义好的规则和条款,在没有第三方机构干预的情况下进行可信交易,其执行结果由区块链上所有节点共同验证,具有去中心化、公开透明、不可逆、不可篡改等特性。默克尔树基于区块链的数据完整性验证结构默克尔树(Merkle Tree),也叫哈希树,是一种持久性数据结构,可用于实现集合和映射,旨在替换纯函数式编程中的哈希表。在区块链中,默克尔树是一种高效且可靠的数据完整性验证结构,是当前区块所有交易信息的一个哈希值。区块链中的每个区块都包含了一系列交易,这些交易可以构建成默克尔树,确保区块数据的完整性,同时也为数据快速验证提供了支持。数字签名可以鉴别区块链系统中的身份信息数字签名(Digital Signature)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。是一种类似于写在纸上的普通的物理签名,但是使用了非对称秘钥加密技术,用于鉴别数字信息的方法。数字签名是区块链的基础技术之一,是以公共密钥密码方式实现的一种数字签名技术,它能帮助区块链系统在传输和存储数据的过程中进行安全验证,确保数据的完整性、发送者身份的真实性,具有身份校验、不可否认性和完整性等特征。基于以上的这些“技术组件”,区块链为数据交互、存储、共享奠定了坚实的“信任”基础,创造了可靠的“合作”机制,具有广阔的应用前景。目前,区块链技术已从产品溯源、存证取证、版权保护、数据共享、智能制造等诸多领域延伸拓展,在金融、交通、医疗、供应链、政务等众多场景中展开了广泛应用。易保全作为国内首批成熟的电子数据存证保全机构,和国内区块链技术领军企业。自研区块链技术,基于区块链底层技术架构,搭建联盟区块链“保全链开放平台”,将20+国家权威机构纳入联盟链节点,运用区块链“去中心化、加密传输、防篡改、分布式存储”等技术特性,围绕电子数据从生成、存储、验证到最后使用的完整链条,为用户提供全链路数据存证保全服务,实现证据在线实时采集、实时保存、实时上链和实时查验,让电子数据成为合法有效的电子证据!目前,易保全“保全链”平台数据以突破41亿,区块链高度达到630万。随着区块链技术的发展和完善,其在司法领域的应用前景也将更加广阔。未来,易保全将继续推进区块链技术在更多司法场景的应用,让司法认可的电子证据保护更多用户权益。发布于 2023-11-23 17:02​赞同​​添加评论​分享​收藏​喜欢

Hyperledger Fabric系统架构 | 企业级区块链实战教程

Hyperledger Fabric系统架构 | 企业级区块链实战教程

企业级区块链实战教程

博客

区块链文库

问答

博客

区块链文库

问答

导读 序言目录第一章 第一章 区块链技术理论区块链核心概念区块链的分类学习区块链的正确姿势区块链技术原理区块链应用原则区块链实施原则区块链技术理论总结第二章 第二章 区块链开发实战预备知识区块链很难学吗?区块链开发应该具备的能力区块链编程需要注意的问题区块链开发工程师岗位技能要求区块链技术选型区块链开发实战预备知识总结第三章 第三章 Hyperledger Fabric架构详解Hperledger 项目简介Hyperledger Fabric 网络体验 - 系统环境配置Hyperledger Fabric 网络体验 - Fabric网络环境Hyperledger Fabric 网络体验 - 网络启动过程概览Hyperledger Fabric系统架构Hyperledger Fabric系统架构Hyperledger Fabric核心组件Hyperledger Fabric 典型交易流程Hyperledger Fabric 架构详解知识总结第四章 第四章 Hyperledger Fabric 网络搭建详解网络概况(5 Orderer +4 Peer+1 CLI)生成证书文件生成交易相关文件启动网络节点Fabric 网络测试网络配置Hyperledger Fabric 网络搭建详解知识总结第五章 智能合约开发开发环境Golang核心知识包函数指针接收器(Pointer receivers)链码基本概念链码开发单元测试智能合约开发知识总结第六章 区块链溯源案例分析区块链农产品溯源方案设计需求分析数据资产及业务流程设计智能合约设计开发Fabric SDK区块链应用开发区块链溯源案例分析知识总结第七章 区块链即服务IBM Bluemix 区块链平台阿里云区块链平台使用Cello搭建区块链平台区块链BaaS知识总结第八章 区块链技术发展趋势区块链技术融合(大数据、人工智能、物联网)区块链技术面临的主要挑战区块链的发展趋势区块链技术发展趋势知识总结第九章 课程总结 # Hyperledger Fabric系统架构 # 核心特性 目前,超级账本Fabric 架构的核心特性主要包括: 解耦了原子排序环节与其他复杂处理环节,消除了网络处理瓶颈,提高了可扩展性;解耦交易处理节点的逻辑角色为背书节点( Endorser )、确认节点( Committer ),可以根据负载进行灵活部署; 加强了身份证书管理服务,作为单独的Fabric CA 项目,提供更多功能; 支持多通道特性,不同通道之间的数据彼此隔离,提高隔离安全性; 支持可拔插的架构,包括共识、权限管理、加解密、账本机制等模块,支持多种类型; 引人系统链码来实现区块链系统的处理,支持可编程和第三方实现。 长期支持版本1.4,支持Raft共识机制。 # 技术架构 Hyperledger Fabric是目前超级账本项目中发展最好的子项目,被广泛应用于跨企业的业务流程改造中。Fabric是一个分布式账本解决方案平台,采用模块化架构,支持不同组件的可插拔实现,以适应业务系统的复杂性。 与比特币、以太坊不同的是,Hyperledger Fabric网络成员加入依赖于成员服务提供者(Membership Service Provider, MSP)注册,而不是允许任何人通过工作量证明机制或者权益证明机制参与网络。 比特币网络中,由于任何成员都可以加入,因此需要采用工作量证明机制来防止用户作恶。Fabric节点加入需要身份认证,因此弱化了节点作恶,在性能和隐私保护方面足以满足政府、企业区块链应用的需求。 在Fabric中有一个独立的Fabric CA模块,用来管理证书服务,当然Fabric也允许第三方CA机构的接入。我们可以把Fabric CA想象成为Fabric区块链平台上的公安局,专门进行证书发放、管理和身份验证。 除支持多种MSP服务之外,Hyperledger Fabric还支持账本存储和共识机制的切换。 分布式账本支持LevelDB(由Google公司研发的键值对嵌入式数据库管理系统)和CouchDB(由Apache软件基金会开发的一个面向文档的开源数据库管理系统),CouchDB是一种key/value的数据存储方式,并且支持JSON格式的查询。 共识机制目前支持SOLO(只限于开发)和Kafka(一种消息平台)、Raft(相比Kafka更去中心化)三种。 隐私保护方面,Hyperledger Fabric还提供创建秘密通道(channel)的功能,允许一组参与者建立自己单独的通道。在企业实际业务中,由于一些参与者可能是竞争对手,如果不希望某些交易的价格被其他人知道,可以在参与者之间建立一个秘密通道,这些价格信息只有参与者知道,其他人无法获得具体价格信息。 Hyperledger Fabric在公链技术的基础上,采用授权方式和通道机制(Channel),使得Fabric的安全和隐私保护方面已经达到了商用化的标准。 Fabric首次将权限管理机制引人区块链领域,其可扩展的架构设计、开放的接口风格、可拔插的组件化实现为分布式账本平台的设计和实现提供了重要的参考依据。 从体系架构上看,Fabric分为四大模块,分别是成员服务、区块链服务、智能合约和应用编程接口。 图3-03-01 Fabric系统架构 1. 成员服务 成员服务(MSP)主要提供证书发布、验证及相关加密机制和协议。成员服务内置了Fabric CA证书颁发机构(Certificate Authority,CA)供基于PKI体系的身份证书管理服务,同时也允许第三方证书认证机构接入。 Fabric CA提供客户端和SDK两种方式与CA进行交互,每个Fabric CA都有一个根CA或者中间CA。为了保证CA的安全性,中间CA可以采用集群方式搭建。 图3-03-02 Fabric CA图表 实践中,为了便于证书管理,一般使用根证书、业务证书、用户证书三级证书结构。根证书(最高级别的证书)用来签发业务证书,业务证书用来签发具体的用户证书,由此形成一个以根证书为顶层的树状结构,这种关系下,所有下层证书都会继承根证书的信任体系。 不同的交易环节中,Fabric使用了不同的业务证书,Enrollment Cert属于身份认证证书,Transaction Cert属于交易签名证书,TLS-Cert属于安全通讯证书。 图3-03-03 CA三级证书结构 2. 区块链服务 区块链服务用于维护分布式账本。区块链服务包括P2P协议、分布式账本和共识机制管理。 P2P协议

Fabric网络中,Peer和Orderer采用gRPC(Google RPC)对外提供远程服务,供客户端进行调用。网络中的节点之间通过Gossip 协议来进行状态同步和分发。 共识机制

区块链网络中,不同参与者之间,交易必须按照发生的顺序写入到分布式账本中。为此必须建立事务的顺序,并且采用一种共识机制拒绝错误(或恶意)的交易数据。 Fabric允许根据实际业务需要选择合适的共识机制,目前支持SOLO、Kafka、Raft三种共识机制。 分布式账本

分布式账本包括两个组件:世界状态(world state)、事务日志,分布式账本是世界状态数据库和事务日志历史记录的组合。 世界状态(world state)组件记录的是最新的分布式账本状态,事务日志组件记录的是世界状态的更新历史。 3. 智能合约服务

智能合约服务用于保证智能合约在网络节点上安全运行。 智能合约是一组运行在验证节点上的去中心化交易程序。在Fabric中智能合约被称为链码(chaincode),由外部应用程序(比如网页、APP)与分布式账本进行交互。 Fabric的智能合约使用Docker存放链上的代码,而不需要依靠特定的虚拟机,Docker为链码执行提供了一个安全、轻便的语言执行环境。 4. 应用编程接口

应用编程接口提供SDK(开发工具包)和CLI(命令行)两种方式供开发人员使用区块链的各种服务。Fabric提供了一套易用、可灵活扩展的API接口。用户可以非常方便地使用SDK(开发工具包)和CLI(命令行)对分布式账本进行查询、更新。 在网络搭建部分我们使用命令行的方式进行网络环境的验证,在实际案例开发中我们会使用SDK与网络进行交互。 Last Updated: 3/9/2020, 9:27:52 PM

Hyperledger Fabric 网络体验 - 网络启动过程概览

Hyperledger Fabric核心组件

区块链服务平台(BaaS)简介及架构 · Pseudoyu

务平台(BaaS)简介及架构 · Pseudoyu

Pseudoyu

思考工具编程友链关于搜索 English区块链服务平台(BaaS)简介及架构作者:

pseudoyu

| 883 字, 2 分钟

| 评论

| 2021-09-07

| 分类:

Develop

baas,

blockchain,

hyperledger fabric

翻译:

EN前言目前工作中负责一个针对 Hyperledger Fabric 的区块链即服务 (Blockchain as a Service, BaaS) 平台的链码管理部分,对这 BaaS 平台的架构与实现很感兴趣,作为一个能为开发者提供一站式应用创建、管理和维护区块链的平台,其架构是怎么样的呢?本文是对 BaaS 平台架构的总结和梳理。BaaS 简介区块链是一个复杂的分布式系统,尤其是像 Hyperledger Fabric 这样的企业联盟链平台,其部署和运维都非常复杂,作为应用开发者需要处理许多环境问题(如证书、docker 环境等),带来了许多挑战。因此,BaaS 平台应运而生,它是一种帮助用户创建、管理和维护企业级区块链的应用平台,用户能够通过友好的 Web 界面对区块链进行操作。通过 BaaS 平台,用户可以很灵活地搭建区块链网络、管理区块链业务和各个模块的功能、进行智能合约的研发和部署以及实时监控和运维。通过 BaaS 平台,开发者可以快速进行区块链业务的研发,综合成本大大降低,且有助于系统稳定性、安全性和易用性等的提升。平台架构BaaS 平台作为一个一站式应用服务,自下而上主要分为以下几层:资源层监控运维层区块链底层区块链服务层应用层而根据每个系统的业务差异,各个层的架构与功能模块会有所差异,下面将会对几大主流平台层次结构做一些描述。Hyperledger CelloHyperledger Cello 作为 IBM Hyperledger 的顶级项目之一,是一个开源区块链管理平台,支持部署、运行时管理和数据分析等功能。Cello 目前支持 Hyperledger Fabric 区块链,可以有效管理 Fabric 链的生命周期,主要包含以下模块:除了高效地创建部署网络外,Cello 提供了一些对于区块链的管理功能:区块链生命周期管理底层支持多种架构,如 Docker、Swarm、Kubernetes 等支持多种底层区块链平台并可以自定义配置支持运行时监控与运维可插拔的框架设计,可以通过插件的形式拓展第三方功能,如资源调度、驱动代理等趣链 BaaS根据官网介绍,BlocFace 是由趣链科技为企业及开发者全新推出的区块链服务平台,为用户提供一键部署联盟链、可视化监控运维和智能合约研发等一站式研发服务,其平台架构如下:总结以上就是对区块链服务平台 (BaaS) 的简介及架构分析,因为目前的 Leader 是 Hyperledger Cello 的项目发起人和核心开发者,鼓励我积极参与 Cello 的开源建设,要加油啦!参考资料区块链原理、设计与应用Hyperledger Cello 项目地址BlocFace 官网相关文章2021-09-09BitXHub 跨链插件(Fabric)源码解读2021-09-01Hyperledger Fabric Go SDK 事件分析2021-03-23Hyperledger Fabric 网络与安全体系浅析2021-03-20Hyperledger Fabric 系统架构详解作者pseudoyu后端 & 智能合约研发工程师,HKU ECICer。喜欢探索新技术,空闲时也折腾 Logseq 等效率工具。 在 GitHub 关注我。在我的 Telegram 频道了解更多。Comments

网站地图标签分类 RSS社交TelegramTwitterInstagramBiliBili关于Yu's GitHubYu's ServicesYu's blog analyticsPowered by Hugo - denThe University of Hong Kong - CS©

Yu Zhang

2020 -

2024

蚂蚁区块链BaaS平台架构与实践 - 蚂蚁金服技术 - 博客园

蚂蚁区块链BaaS平台架构与实践 - 蚂蚁金服技术 - 博客园

会员

周边

新闻

博问

AI培训

云市场

所有博客

当前博客

我的博客

我的园子

账号设置

简洁模式 ...

退出登录

注册

登录

蚂蚁金服技术

博客园

首页

新随笔

联系

订阅

管理

蚂蚁区块链BaaS平台架构与实践

摘要:以“数字金融新原力(The New Force of Digital Finance)”为主题,蚂蚁金服ATEC城市峰会于2019年1月4日在上海如期举办。在ATEC区块链行业研讨会分论坛上,蚂蚁金服资深总监、BaaS业务负责人李杰力做了主题为《蚂蚁区块链BaaS,链接天下信任》的精彩分享。

演讲中,李杰力从核心特性与架构及其四大应用场景——商品溯源、跨境汇款、电子票据和司法可信存证,详细介绍了BaaS平台,并且与大家分享了2019蚂蚁区块链创新大赛的参赛规则和考察维度等方面的内容。

李杰力 蚂蚁金服资深总监,BaaS业务负责人

本次的分享主要围绕以下三个方面:

一、蚂蚁区块链BaaS平台简介

二、BaaS应用案例

三、2019蚂蚁区块链创新大赛

一、蚂蚁区块链BaaS平台的介绍

什么是BaaS?为什么要用BaaS?在过去两年时间里,蚂蚁区块链在技术上做了很多的研究,同时也获得了很多的成果,在专业技术方面连续两年获得第一。其隐私保护、数据安全等方面都取得了很好的突破。现在这套技术体系沉淀在平台上,并且被开放出来,是希望更多伙伴来一起合作,让开发者不用再从事底层的基础工作,而是在很厚实的地基上盖自己的房子,做自己的应用,解决自己行业内的问题。在未来,蚂蚁区块链有望成为一种很简单的,对开发者来说根据自己的业务逻辑,一键式部署一个基于云端的业务和产品,其具体内容如下图所示。

BaaS拥有许多核心特性,如下图中的高性能、稳定性、隐私保护和可靠性,因此企业级金融级的这套平台的技术体系得了很多奖项。对开发者来说,它被期望是灵活可定制的,能够在模块化的平台基础上面部署自己的区块链应用。对于用户来说,它被期望是简单易用的,从而可以不用考虑其背后是否是由区块链构成(用户也不用在乎这些,而在乎的是能不能实现他想要做的事情)。

如下图所示,蚂蚁区块链BaaS平台架构的底层是部署在云平台上面的,其构架的倒数第二层是技术含量最高的、也是最复杂的区块链平台,包含了密码学、P2P网络等内容。对于蚂蚁区块链BaaS平台的合作伙伴而言,他们不需要考虑这两层的内部结构,因为在管理平台上,会提供一些工具,如仪表盘、浏览器等。对于用户不同的权限,平台可以自动适配整个链的接口管理,以及上层的一些针对特定场景的解决方案(如溯源、存证、保险交易等)和沉淀在应用层的品牌。开发者可以根据实际需求选择自己需要的平台模块,也可以在平台上发布自己的区块链产品,这样可以大大降低建立区块链应用的成本和门槛,同时也可以减少平台的运转周期。

二、BaaS应用案例

BaaS的应用场景十分广泛,包括商品溯源、跨境汇款、电子票据、司法可信存证和慈善等应用场景。

1、 商品溯源

在商品溯源方面,BaaS充分利用了区块链的分布式数据不可篡改性。如下图所示,BaaS可以记录一个商品从生产到流转最后到抵达消费者的整个过程,并且对很多商品提供了溯源服务(如说高净值的钻石、茅台酒和一些海外进口的奶粉等等)。在双11期间,BaaS对总数超过1.5亿件产品提供了溯源的服务,取得了非常好的效果。例如,仅仅根据一瓶茅台酒上面的二维码,支付宝端在扫一扫后,会告诉用户该商品的整个流转过程,包括这瓶酒在哪些地方做了哪些检查,在哪个地方待了多久等,其整个流转的历史记录都能被看到。溯源在以前是采用中心化的形式实现的,但是在使用了区块链这种去中心化不可篡改的方式实现以后,大幅降低商品做假的概率,因为在区块链的某一个节点篡改商品信息或者替换一个假商品,其难度相较之前得到了成倍增长。

2、 跨境汇款

在现在的日常生活中,大家几乎都使用支付宝或者微信进行支付。在境内的这个体系里面,用户相互之间的转账是非常便捷的,并且成本几乎为零。但是在跨境转账的场景中,包含了不同的银行体系、不同的金融监管规则和不同的客户端,导致其转账的成本很高,花的时间也很长。而在传统银行的体系中进行跨境转账,对很多人尤其对低收入的人而言是非常高的负担。BaaS平台在去年6月份于香港开通了第一条跨境汇款通道,它是完全采用了基于区块链底层技术开发而成,下图中的这位Grace成为了这条通道的首笔交易的亲历者,这仅仅是个开始,在未来,BaaS会在不同国家开通不同的通道。在支付宝在一带一路的东南亚一系列国家里面,BaaS有一系列合作伙伴。如韩国的pay、印度和菲律宾的Gcash,BaaS会开通更多通道,让跨境资金来往变得像在支付宝端内一样便捷。实际上,涉及到跨境的资金来往在某种程度上都或多或少要用到了区块链,然而传统的方式所消耗的成本非常高,因此BaaS采用了新的方式即区块链的技术来实现跨境转账。

3、 电子票据

BaaS在电子医疗票据方面也有应用。如下图所示,BaaS在台州已经开出了80万张电子医疗票据,形成了闭环,当某位患者走出医院的时候,他的社保会自动地进行报销。随着社会人口老龄化,大家会越来越注重健康,所需要的保持健康的成本越来越高,区块链在医疗领域会具有非常广阔的应用空间,同时具有非常大的经济价值和社会意义。BaaS在未来还会实现许多潜在需求,例如在保护用户隐私和数据安全的前提条件下,让患者的身份也上链。在将来,患者看病的场景可能会发生变化,在一个用户去到医院的时候,工作人员就能从链上调出患者的记录,之前的病史也一清二楚,开具的也是电子处方,最后患者依据这个处方去药房取药。在患者离开医院的时候,所有这些信息都会记录在区块链里面真实可靠且不可篡改,并且他的社保、商业保险都会及时报销到位,而不用由患者拿着纸质文件去东奔西跑。

电子发票也是同样的逻辑。BaaS通过跟广州税务局合作,实现了在区块链上开具发票的功能,此外还有发票的流转和报销功能。在以前用户需要花几天、几星期做的事情,现在仅需几秒钟、几分钟便可完成,进而提高社会效率、降低社会成本。

4、 司法可信存证

在司法可信存证方面,BaaS与杭州互联网法院合作,将各个司法节点公证处、法院连接起来,形成了一套区块链的部署,具体的司法链结构如下图所示。此外,BaaS把很多版权类的存证、电子合同、房租和借贷合同等都存放在区块链上,一旦发生纠纷,法院可以直接从区块链上获取数据和证据。区块链上的数据是具备公信力的,法院可以根据链上的数据直接进行判决。在现实生活中,BaaS在司法链上已经运行了两三个月的时间,处理的相关案件也已经有80多起了。

5、 其他应用场景

除了上述提及的四个应用场景,蚂蚁区块链团队还落地了慈善、航天信息和雄安新区等应用。区块链只有落地才能真正地脱虚向实,服务于实体经济。区块链是链,同时它也是一个网络,因为它的数据结构是一个链状,一环扣一环,不可篡改。要实现区块链的真正价值还是要靠其网络效应,只有走开放和共建的道路,才能真正发挥区块链的价值。

三、2019蚂蚁区块链创新大赛

蚂蚁区块链创新大赛面向全球开发者,鼓励各个开发者在BaaS平台上创建区块链的应用,去解决各自行业内的问题,创造新的价值。创新大赛目前确认的合作伙伴如下图所示。

大赛的详细的参赛规则如下图所示。基本上是使用支付宝的账户,选定一个特定的场景来用区块链的方式,用蚂蚁BaaS平台创建一个解决方案,来创造一个真正的有价值的应用。

创新大赛会考察多个维度,通过邀请一些内部和外部的专家,来对参赛项目进行综合考量,其具体的考察维度如下图所示。需要注意的是,本次比赛着重于创新性和应用性,一些跟以往不太一样的,让人耳目一新的区块链的应用会得到更多的关注。当然该应用在商业价值、技术价值、用户体验各方面的表现都会进行综合考虑和评定。

创业大赛的权益如下图所示,包括180万现金(奖励前三名的项目)、整个超过千万人民币价值的权益(包括线上线下各种各样的推广、合作、培训,对BaaS平台可以免费使用等等这一系列的权益)、还包括支付宝创新基金三年10亿人民币规模的基金,用来投资一些真正优秀的项目,来助力它们的发展。

关于创新大赛的赛程如下图所示,报名入口于1月4日开放,并且三月份和六月份分别有一次线下的活动,包括培训和交流活动。在六月份的时候,会进行一次初步的评比,获得优秀的项目进入九月份在云栖大会举办的总决赛。另外三月份的活动在上海举行,九月份的活动在杭州举行。

下图左侧是创新大赛报名的页面,右侧的二维码是报名的链接,在扫描以后可以直接进入报名页面。欢迎全球的开发者参与本次比赛!

总之,蚂蚁把一套区块链的技术放到了全新的BaaS平台中,为开发者提供了充分的支持,希望能有更多合作伙伴加入、参与构建基于区块链的应用。希望大家与BaaS平台一起携手共建区块链产业的未来,谢谢!

点击阅读更多,查看更多详情

posted @

2019-02-23 19:33 

蚂蚁金服技术 

阅读(6674) 

评论(0) 

编辑 

收藏 

举报

会员力量,点亮园子希望

刷新页面返回顶部

公告

Copyright © 2024 蚂蚁金服技术

Powered by .NET 8.0 on Kubernetes