.jpg)
一、雨刮器节点是什么意思
很多人在日常用车的时候都会把雨刮器作为一个配件,这样不仅可以让下雨的时候视线更清晰,即使不下雨也可以清洁玻璃,还可以通过雨刮器节点判断周围环境是否会影响我们的驾驶。那么这个雨刷节点是什么呢?刮水器节点的位置是什么?
刮水器节点概念
我们通常所说的刮水器节点实际上是刮水器臂和刮水器刮片之间连接点处的突起。
刮水器节点的功能
常用来判断车轮位置痕迹,比如我们需要知道左侧车轮会压到哪里,避免轮胎压到实线,或者避免路面出现坑洼和石子。当我们的视线通过左雨刮器的凸出节点与地面上的一个物体重合时,我们的左轮在行驶时会被压在物体上。例如,如果刮水器节点与地面的中心线重合,轮胎将被压在中心线上。
刮水器节点的位置
我们通常所说的雨刮接头,实际上是指雨刮臂和雨刮片之间的接头。雨刷节点通常用于判断轮胎的位置,避免轮胎压到实线,或者避免路面出现坑洼和石块。它们经常被驾校教练在教学中使用。
汽车左右雨刷节点原理:距离判断
第一个是判断60厘米的距离。刚开始学证书的时候,教练说要对车身和周围物体的距离有一个概念。正常行驶时车身与路面保持60cm的距离更安全。很多人都知道这个说法,但对60厘米却一无所知。这时,我们可以用雨刮器来判断。如果a柱与雨刮器旁边挡风玻璃的夹角与标线匹配,则意味着距离控制在相对安全的60cm。
二是判断左轮的位置。很多新手开车的时候对车身和车轮的位置没有概念,经常碰到压线或者蹭到路沿。这时,我们可以看左雨刮器的节点,因为这个节点就是左轮的位置。
三是判断右轮的位置,就像之前一样,只要是右雨刮器上的节点经过的地方,就一定是右轮胎经过的地方。如果您不想按线或触摸其他对象,请确保让正确的节点远离您想要避免的对象。
最后一个是停车时帮忙。大多数人都在路边遇到过短暂的停留。这个时候,掌握好距离就成了很多人最担心的地方,雨刮器可以帮上忙。我们只需要等到右路口与路边重合,向左转动方向盘,直到车身变直。这时,距离正好是10厘米。
百万购车补贴
二、网络技术里的"ATM"是什么意思啊
ATM:异步传输模式 Asynchronous Transfer Mode
Asynchronous Transfer Mode(ATM)异步传输模式(ATM) ATM是一项数据传输技术,有可能革新计算机网络建立的方法。它适用于局域网和广域网,它具有高速数据传输率和支持许多种类型如声音、数据、传真、实时视频、CD质量音频和图象的通信。AT&T和US Sprint等通信公司已经在广域网上采用ATM,为客户提供多兆位的数据传输服务。从1994年进入1995年时,几乎所有的硬件供应商将提供如下的ATM产品:
□连到电信ATM服务的ATM路由器与ATM交换器,用于建立企业范围的综合网络。
□建立内部专用主干网的ATM设备,用于互连组织中所有局域网(LAN)。
□ATM适配器和工作组交换器,与用于运行多媒体应用的台式计算机与高速ATM连接。
ATM利用光缆上的高数据吞吐率,在电信系统中,高速ATM(155Mbps~622Mbps)可以在同步光纤网(SONET)上实现。SONET运用光缆并且提供公共综合远程通信标准。虽然实现ATM光纤是为公用远程通信系统建立的,ATM仍被认为是适合专用内部交换网的技术。随着ATM得到更多用户的认可和更加具有竞争力,速率为155Mbps的ATM接口板将在九十年代中期普遍运用于台式多媒体计算机。跻身于ATM的供应商日益增多,ATM市场的竞争将是很激烈的。
现在的LAN技术所提供的带宽不能满足企业内出现的多媒体和实时视频图象等应用的需要。实时视频图象要求大的数据传输容量,确保有一定量的带宽,防止漏失产生不稳定的图象。共享的LAN介质如Ethernet会很快达到通信负载饱和,阻止了时间敏感的实时应用及时获得传输通路。由于ATM具有较高带宽、为某一应用提供一定专用带宽的能力以及固定大小的报文分组(称做信元),所以它能处理实时应用。
ATM有可能成为标准数据传输方法,用ATM交换设备取代当前的语音和通信设备。值得一提的是,在标准化初期,许多人认为ATM直到下世纪才会得到广泛应用,但是电信网络及LAN环境对高带宽业务的需要促使供应商大大提前了供应ATM产品的计划。
ATM Technical Aspects ATM技术概况
ATM是在LAN或WAN上传送声音、视频图象和数据的宽带技术。它是一项信元中继技术,数据分组大小固定。你可将信元想像成一种运输设备,能够把数据块从一个设备经过ATM交换设备传送到另一个设备。所有信元具有同样的大小,不象帧中继及局域网系统数据分组大小不定。使用相同大小的信元可以提供一种方法,预计和保证应用所需要的带宽。如同轿车在繁忙交叉路口必须等待长卡车转弯一样,可变长度的数据分组容易在交换设备处引起通信延迟。
交换设备是ATM的重要组成部分,它能用作组织内的Hub,快速将数据分组从一个节点传送到另一个节点;或者用作广域通信设备,在远程LAN之间快速传送ATM信元。以太网、光纤分布式数据接口(FDD1)、令牌环网等传统LAN采用共享介质,任一时刻只有一个节点能够进行传送,而ATM提供任意节点间的连接,节点能够同时进行传送。来自不同节点的信息经多路复用成为一条信元流,如图A-12所示。在该系统中,ATM交换器可以由公共服务的提供者所拥有或者是组织内部网的一部分。
注意:ATM交换器仅仅简单地中继信元,它查看信元头部并立即转发,不用路由器使用耗时的存储-转发方法。
An Analogy一种模拟
让我们用大桥上汽车来模拟说明ATM的工作过程和高效的原因。大桥可以想像成两个远程局域网之间的ATM连结,假设汽车如同ATM信元,具有相同的大小,在运输中占有相同的空间和相等的速度通过大桥,这样你就可以精确地预计汽车到达大桥另一端的时间。但在实际生活中,汽车具有不同大小,所以很难预计交通流量。在数据通信中,可变大小的数据分组会引起不确定的延迟,不适合于视频图象与声音应用(除非采用优先化办法)。
好,继续我们的模拟过程。假设你想将一公共汽车上的人运送过桥,由于不允许公共汽车通过,所以每四人一组使用轿车过桥,再在另一端继续乘坐另一辆公共汽车。类似地,在ATM中,高级应用中的数据分组也需要分成更小的部分,装入许多ATM信元中传送至另一端后再重新组合到一起。
如果几辆公共汽车同时到达,它们能够同时分组乘骄车过桥,不需要等一车人全部通过后才再让另一车人过桥。如同图A-12所示的ATM信元,装乘客的轿车允许一辆接一辆地过桥。在通信中,该项技术用于多路复用;在ATM中,它用于从多条链路同时传送。
注意:ATM交换器有许多输入、输出端口,因为所有信元大小相同,不会出现可变长信元引起的延迟。
固定信元大小和多路复用为设备提供所需求的宽带。由于文件传输或其它导致高峰的活动,LAN交通往往出现高峰。ATM交换器可以检查出运输中的高峰现象,并动态分配更多的信元来流通来自某一特殊发送点的交通高峰。在图A-12中,HubA的交通高峰可转化为一条信元流,包含3个A信元,1个B信元,1个C信元,这样有较多A信元的流可重复通过,直至传输完成。 ATM Switches and Networks ATM交换器和网络
ATM交换器是ATM网络中进行信元交换的多端口设备。当某一信元到达一个端口时,ATM交换器查看其目的站信息并传送到适当的输出端口。设计如图A-13的网状ATM交换器具有许多端口,常被电信局使用;基于总线的交换器端口较少,更适合于LAN。如果多个ATM交换器连接在一起,则需要路由选择协议使交换器能够互换查寻连接表。
ATM交换器具有较高互换速度的一个原因在于交换操作由硬件完成,它避开了相当于OSI协议的网络层,仅仅将信息装入信元并发送出去。ATM是所谓的“快速分组”技术,类似于帧中继和交换式兆位数据服务(SMDS),它没有错误检测,也不会因这些问题而瘫痪。接收站负责确认发送的所有内容都已收到,如果发生信元丢失或出错,接收站必须请求发送站重发。ATM并不负责恢复信元。相对而言,X.25分组在网络传送时采用扩充的错误检测。每一个结点在转发前,要求完全接收了报文分组并且进行了错误检测,但这样的开销限制了吞吐量。X.25用于容易出错的老式模拟电话系统,错误检测能够尽快查出出错的报文分组。ATM假定使用的是高质量、无差错的传输设备。
ATM是一项传输协议,大致位于OS1协议栈中数据链路层的介质访问控制(MAC)子层,所以它能工作于许多物理层拓扑结构之上,并且将各种报文分组装入其53字节的信元,并在主干网或WAN上传送。
ATM传输率根据物理层的性能是可伸缩的,而不具有某个标准固定传输率,例如光纤分布式数据接口(FDDI)固定于100Mbps。ATM小信元不需要特殊处理,而FDDI则需要对其信元进行处理。ATM信元容易组成,而FDDI需要(会导致延迟的)协议会话。ATM能利用现有的T1线路、T1子线、T3线路,而FDDI做同样的事情需要建立对话。
市场上已经出现ATM台式连接,但是用户购买时须十分小心。在LAN环境中,ATM很难实现工作站间的通信,然而IBM公司和HP公司等正在开发具有12个100Mbps的ATM与工作站连接端口的Hub,科研工作站的用户及图象处理、模拟仿真的人员很可能会选择这种类型的设备。台式系统和局域网的ATM的使用包括:影象、多媒体、图形和计算机辅助设计/计算机辅助制造(CAD/CAM)。例如ATM可以提供高清晰度电视(HDTV)所需的100~150Mbps的专用带宽。
ATM Roots and Architectwre ATM的起源与体系结构
ATM最初作为宽带综合业务数字网(B-ISDN)的一部分。B-ISDN由国际电报电话咨询委员会(CCITT)于1988年推出,是对公共数字远程通信网——窄带ISDN的扩充,它具有更宽的频带和允许更高的数据吞吐量。B-ISDN参考模型如图A-14所示。
□物理层规定电子或物理接口、线路速度以及其它物理特性。
□ATM层定义信元格式。
□ATM适配层定义将上层信息转换为ATM信元的过程。
虽然B-ISDN模型扩大了对ATM的支持,但许多细节仍然值得注意。1991年,硬件供应商和远程通信服务提供者的一个联合会组成的ATM Forum组织,进一步定义了LAN、WAN中的ATM物理接口标准。ATM Forum并不制定标准,只是负责阐明和建立ATM的开发目标,ATM Forum定义了两种物理接口方法:
□用户与网络接口(UNIs)
UNI是终端工作站与ATM网络的连接点。例如ATM访问交换器能作成为与公共(如电话公司)ATM网的UNI连接。
□网络与网络接口(NNIs)
它是公共ATM网(如地区电话公司提供的)中ATM交换器之间的接口。NNI主要管理ATM交换器的互操作性,NNI也可以是网络与节点间的接口。
在这项方案中,电信服务有自己的ATM交换器用于处理来自不同客户的广域通信。每个客户具有自己内部专用的ATM交换器,处理局域网通信和连接到公共ATM网。
ATM Forum还定义了ATM的其它部分,如管理方法、通信控制、不同媒体类型、测试方法等。Internet工程任务组(IETF)正着手定义ATM如何处理LAN分组向ATM信元转换。
在ATM环境中,端点工作站之间的逻辑连接称为虚通道(VC),虚路径(VP)是许多虚通道的集合,如图A-15所示。虚路径可以包括一束导线的电缆,电缆连接两个端点,其中的导线提供两端点间的独立线路。该方法的好处是:网络中共享同一条通路的连接能够作为一组,便于采用相同的管理。如果建立了一条虚路径,在虚路径中添加一条新虚通道就非常容易了,因为已经定义了网络中的路径。另外,如果为了避免拥塞或避开已经断开的交换器而改变了虚路径,那么其中所有虚通道也要作相应的变化。
ATM信元标头有虚路径标识符(VPI)和虚通道标识符(VCI),它们分别标识虚路径所形成的链接和虚路径中的虚通道。VPI和VCI被说明相对于ATM交换设备的终端节点。如图A-15所示,虚路径连接VPI-1与VPI-5,该路径中有三条虚通道。注意,VPI说明网络中的相应端口,而通道的说明与所在的路径相关。
物理层
ATM物理层最有趣的是,它没有定义任何特定的介质类型。LAN设计使用同轴电缆或双绞线,并有定义带宽的严格规范,该规范是为与设计当时的电子元器件相适应而建立的。ATM能够支持不同的传输介质,包括其它通信系统现在所用的介质。
工业专家正努力将同步光纤网(SONET)作为适合LAN与WAN应用的ATM物理传输介质。SONET是Bellcore规程,现在广泛使用于世界范围公共数据网上。ATM Forum推荐FDDI(100Mbps)、Fibre Channel(155Mbps)、OC3 SONET(155Mbps)、T3(45Mbps)作为ATM的物理接口。现在,大部分电信局提供了T3链路,连接到他们的ATM网。
ATM层
ATM层定义了图A-16所示的ATM信元结构,以及通道和虚路径的路由选择、错误控制。ATM信元是信息的报文分组,包括载体(数据)和标头信息。标头信息中有通道和路径信息,用来指引信元到达目的站。
信元长53个字节,其中48个字节用于载体,5个字节用于标头信息。注意标头信息几乎占了信元的1/10,正如ATM的反对者所指出的,这种做法增加了长距离传输的额外开销,因此他们提议采用帧中继那样的变长分组技术。信元标头各字段所包含的信息描述如下:
□属性流控制(GFC)
它现在正在被定义,但ATM Forum已经把它定义作为多工作站使用同一用户网络接口(UNI)的方法。另外还可能用它定义服务类型。
□虚路径标识符(VPI)
标识用户之间或用户与网络之间的虚路径。
□虚通道的标识符(VCI)
标识用户之间或用户与网络之间的虚通道。
□载体类型指示符(PTI)
指出载体区的信息类型,如用户信息、网络信息或管理信息。
□信元摘取优先值(CLP)
定义网络出现拥塞时如何摘取信元,该字段保持优先值,0表示该信元不能被摘取。
□标头错误控制(HEC)
提供有关一位错的检错纠错信息
ATM适配层(AAL)
AAL将上层的报文分组分别装入ATM信元。前面讲过,每个信元有一个48个字节的载体区,AAL将1000个字节的报文分组分成21小段,每小段装入一个信元进行传送。该层分为两个子层,汇聚子层(CS)接收来自高层的数据然后向下传送到分段与重组子层(SAR),SAR负责将数据分开装入53个字节的ATM信元中。如果有信元到来,SAR就将其中的数据重新组合,并传送到上层。下面是AAL的几种类型:
□类型1为音频和视频应用提供固定比特率的等时性服务。它类似于T1或T3,提供一系列数据速率。
□类型2类似于压缩视频图象的可变比特率的等时性应用。电信局并没有实现该接口。
□类型3/4支持LAN型可变比特率的突发数据传送。可用于帧中继与SMDS接口。
□类型5所支持的功能为类型3/4的子集。提供消息模式与不确定的操作,这种模式可能将很快开发开来。
服务种类
ATM提供了四种类型的服务来适应各种通信,如声音、视频图象和数据的传输,服务种类根据怎样进行位传送、需要带宽、所需连接类型等对应用进行分类。如图A-17所示。
□A类是面向连接的服务。不变位速率,它的同步补偿使之适合于视频图象和声音应用。
□B类是面向连接的服务并且定时地传送可变位速率的声音与视频图象。与AAL的接口是2型。
□C类是面向连接、可变位速率的服务。不要求同步,适合于X.25、帧中继和TCP/IP等服务。与AAL的接口是3/4型或5型。
□D类是非连接服务。可变位速率,两端点之间不要求同步。LAN报文分组传输是由该层所支持数据传送的一个例子。与AAL的接口是3/4型。
ATM and the Cerrier Services ATM和电信服务
ATM是广域网(WAN)通信发展的方向,它将会消除局域网(LAN)与广域网(WAN)之间的壁垒,这就是与公共网上数据传输有关的吞吐量下降。存储-转发的WAN连接设备如路由器是一个壁垒,本地交换电信局(LECs)和网间交换局(ISCs)必须安装综合ATM/SONET数字网以提供经济的虚拟专用数字网服务。ATM能够以较小的开销获得更多传输,在这一点上有利于消费者,用户只需为他们传送的信息交费。
变换式多兆位数据服务(SMDS)是由Bellcore提供的基于IEEE 802.6城域网(MAN)标准的服务,它是建于ATM之上、基于信元、无连接的分组交换网,允许用户在某一大都市区内建立他们自己的互联局域网。该服务是按需提供的,并且客户只为所使用的服务付款,这样客户就可以不必使用利用率不高的专用点对点线路。SMDS的吞吐量是45Mbp。
SMDS非常适合需要在都市区连接LAN的用户。然而AT&T的计划中没有包括SMDS,它正迅速倾向于建立ATM技术与服务。威斯康辛大学与伊利诺大学之间建立了一个实验性ATM网,传输率为622Mbps。据AT&T声称,不列颠百科全书的整个内容1秒内可以全部传完,而使用2400波特的modem却需传输两天半。AT&T正在为视频图象和多媒体信息服务开发高速ATM交换设备。
其他电信局正在安装实现帧中继、SMDS和X.25接口的ATM交换设备。由于ATM能够管理包括声音和视频图象在内的几乎所有的传输请求,专家们认为电路交换与分组交换之间的区别将在本世纪九十年代末消失。
Planning for ATM计划使用 ATM
虽然ATM最初被开发作为一项广域网技术来提高局域网外部的传输速率,ATM技术将最终因为价格合适而进入室内联网。同时,快速以太网技术与交换式Hub更加合适和更加经济。另外IBM每年投资1亿多美元用于开发ATM产品,包括自己的ATM系列芯片。这些产品包括个人计算机和台式系统的ATM接口卡,以及ATM集线器,它们都将在1994年推出。虽然有些人认为生产台式机的ATM适配器时机还不成熟,IBM却坚持认为已有需求。
考虑转向ATM的组织必须遵循循序渐进的方法,采取分层的分布式布线结构。在一个多层办公大楼中,首先可以安装一个主ATM交换器作为主干网链接每层楼的网络,它们可以是现存的Ethernet或FDDI主干网;下一阶段,在每一层楼安装ATM交换器来连接装在那里的高性能服务器;最后阶段,当ATM相对不那么贵时,将端点用户系统直接连到ATM交换器上。
可以通过许多方式建立ATM主干网拓扑结构,ATM并不限于某一特定的拓扑结构如Ethernet或FDDI,它以分层的星形结构为主,必要时也能采用其它拓扑结构。
ATM用作公司主干网时,能够简化网络的管理,消除了许多由于不同的编址方案和路由选择机制的网络互连所引起的复杂问题。ATM集线器能够提供集线器上任意两端口的连接,而与所连接的设备类型无关。这些设备的地址都被预变换,例如很容易从一个节点到另一个节点发送一个报文,而不必考虑节点所连的网络类型。ATM管理软件使用户和他们的物理工作站移动地方非常方便。
ATM论坛
ATM论坛(415/926-2585)是一个提倡ATM的工业界组织,本部在加利福利亚州的Mountain View,它成立于1991年10月,有300多个成员。ATM论坛由多个委员会组成,其中有ATM实现和文件规范委员会,北美和欧州ATM市场开拓委员会,促进进行“ATM技术与端点用户”讨论的委员会。
三、大区块链中节点有哪些类型***区块链节点什么意思
区块链的链分类
前两天有朋友微信上问了许多关于区块链的一些问题,其中一个问题就是区块链的这个链怎么去分类。区块链目前可以分为四类:公链,私链,联盟链以及侧链。北京木奇移动技术有限公司,专业的区块链外包开发公司,欢迎洽谈合作。下面带大家了解区块链这几个链各自的特点以及如何应用,希望对大家有所帮助。
1.公链——人人可参与
公链是指任何人都可读取的、任何人都能发送交易且交易能获得有效确认的、任何人都能参与其中共识过程的区块链。
公链采取了采取工作量证明机制(POW)、权益证明机制(POS)、股份授权证明机制(DPOS)等方式,并将经济奖励和加密数字验证结合了起来,并建立一个原则就是每个人从中可获得的经济奖励与工作量成正比。这些区块链通常被认为是完全去中心化的。
特性:
1.开源,由于整个系统的运作规则公开透明,这个系统是开源系统;2.保护用户免受开发者的影响,在公有链中程序开发者无权干涉用户,所以区块链可以保护使用他们开发的程序的用户;3.访问门槛低,任何拥有足够技术能力的人都可以访问,也就是说,只要有一台能够联网的计算机就能够满足访问的条件;4.所有数据默认公开,尽管所有关联的参与者都隐藏自己的真实身份,这种现象十分的普遍。他们通过他们的公共性来产生自己的安全性,在这里每个参与者可以看到所有的账户余额和其所有的交易活动。
案例:公有链中有许多我们熟悉的身影:BTC,ETH,EOS,AE,ADA等
2.私链——权利掌握在少数人手里
私链是指其写入权限仅在一个组织手里的区块链。读取权限或者对外开放,或者被任意程度地进行了限制。相关的应用囊括数据库管理、审计、甚至一个公司,尽管在有些情况下希望它能有公共的可审计性,但在很多的情形下,公共的可读性并非是必须的。
特性:
1.交易速度快,一个私链的交易速度可以比任何其他的区块链都快,甚至接近了并不是一个区块链的常规数据库的速度。这是因为就算少量的节点也都具有很高的信任度,并不需要每个节点来验证一个交易。2.隐私性好,给隐私更好的保障私有链使得在那个区块链上的数据隐私政策像在另一个数据库中似的完全一致;不用处理访问权限和使用所有的老办法,但至少说,这个数据不会公开地被拥有网络连接的任何人获得。3.交易成本低交易成本大幅降低甚至为零私有链上可以进行完全免费或者至少说是非常廉价的交易。如果一个实体机构控制和处理所有的交易,那么他们就不再需要为工作而收取费用。
案例:Linux基金会、R3CEVCorda平台以及GemHealth网络的超级账本项目(Hyperledgerproject)或在开发或在使用私链。
3.联盟链——部分去中心化
联盟链开放程度和去中心化程度是有所限制的。其参与者是被提前筛选出来或者直接指定的,数据库的读取权限可能是公开的,也可能像写入权限一样只限于系统的参与者。
特性:
1.交易成本低,交易只需被几个受信的高算力节点验证就可以了,而无需全网确认;2.节点容易连接,若是出了问题,联盟链可以迅速通过人工干预来修复,并允许使用共识算法减少区块时间,从而更快完成交易;3.灵活,如果需要的话,运行私有区块链的共同体或公司可以很容易地修改该区块链的规则,还原交易,修改余额等。
案例:瑞波用于日韩国际汇款及日本本国银行间汇款建立了联盟链,同时之前火过一阵子的迅雷链克也是一种半开放的联盟链。
4.侧链——拓展协议
侧链”从严格上来说,其本身并不是区块链,可以理解为区块链的一种扩展协议。早期“侧链”是为了解决比特币区块链技术的限制问题。侧链就像是一条条通路,将不同的区块链互相连接在一起,以实现区块链的扩展。侧链完全独立于比特币区块链,但是这两个账本之间能够“互相操作”,实现交互。
特性:
1.独立性,侧链架构的好处是代码和数据独立,不增加主链的负担,避免数据过度膨胀。侧链有独立的区块链,有独立的受托人或者说见证人,同时也有独立的节点网络,就是说一个侧链产生的区块只会在所有安装了该侧链的节点之间进行广播。2.灵活性,侧链所有的区块链参数是可以定制的,简单的比如区块间隔、区块奖励、交易费的去向等,高级用户还可以修改共识算法。
案例:LSK,RDN,ARDR等币种是利用的侧链技术。
对于目前整个数字货币领域而言,今年可能仍然是底层公有链项目的竞争大赛,原因是目前公链作为区块链的基础设施还是存在明显的不足,尚且无法实现真正的安全、可靠和高效。这也明显制约着整个区块链产业的发展。
浅析FabricPeer节点
HyperledgerFabric,也称之为超级账本,是由IBM发起,后成为Linux基金会Hyperledger中的区块链项目之一。
Fabric是一个提供分布式账本解决方案的平台,底层的账本数据存储使用了区块链。区块链平台通常可以分为公有链、联盟链和私有链。公有链典型的代表是比特币这些公开的区块链网络,谁都可以加入到这个网络中。联盟链则有准入机制,无法随意加入到网络中,联盟链的典型例子就是Fabric。
Fabric不需要发币来激励参与方,也不需要挖矿来防止有人作恶,所以Fabric有着更好的性能。在Fabric网络中,也有着诸多不同类型的节点来组成网络。其中Peer节点承载着账本和智能合约,是整个区块链网络的基础。在这篇文章中,会详细分析Peer的结构及其运行方式。
在本文中,假设读者已经了解区块链、智能合约等概念。
本文基于Fabric1.4LTS。
区块链网络是一个分布式的网络,Fabric也是如此,由于Fabric是联盟链,需要准入机制,所以在网络结构上会复杂很多,下面是一个简化的Fabric网络:
各个元素的含义如下:
对于Fabric网络,外部的用户需要通过客户端应用,也就是图中的A1、A2或者A3来访问网络,客户端应用需要通过CA证书表明自己的身份,这样才能访问到Fabric网络中有权限访问的部分。
在上面的网络中,共有四个组织,R1、R2、R3和R4。其中R4是整个Fabric网络的创建者,网络是根据NC4配置的。
在Fabric网络中,不同的组织可以组成联盟,不同的联盟之间数据通过Channel来隔离。Channel中的数据只有该联盟中的组织才能访问,每一个新的Channel都可以认为是一条新的链。与其他的区块链网络中通常只有一条链不一样,Fabric可以通过Channel在网络中快速的搭建出一个新的区块链。
上面R1和R2组成了一个联盟,在C1上交易。R2同时又和R3组成了另外一个联盟,在C2上交易。R1和R2在C1上交易时,对R3是不可见的,R2和R3在C2上交易时,对R1是不可见的。Channel机制提供了很好的隐私保护能力。
Orderer节点是整个Fabric网络共有的,用来为所有的交易排序、打包。比如上面网络中O4节点。本文不会对Orderer节点进行详细说明,可以把这个功能理解为比特币网络中的挖矿过程。
Peer节点表示网络中的节点,通常一个Peer就表示一个组织,Peer是整个区块链网络的基础,是智能合约和账本的载体,Peer也是本文讨论的重点。
一个Peer节点可以承载多套账本和智能合约,比如P2节点,既维护了C1的账本和智能合约,也维护了C2的账本和智能合约。
为了可以更深入了解Peer节点的作用,先了解一下Fabric整体的交易流程。整体的交易流程图如下:
Peer节点按照功能来分可以分为背书节点和记账节点。
客户端会提交交易请求到背书节点,背书节点开始模拟执行交易,在模拟执行之后,背书节点并不会去更新账本数据,而是把这个交易进行加密和签名,然后返回给客户端。
客户端收到这个响应之后就会把响应提交到Orderer节点,Orderer节点会对这些交易进行排序,并打包成区块,然后分发到记账节点,记账节点就会对交易进行验证,验证结束之后,就会把交易记录到账本里面。
一笔交易是否能成功是根据背书策略来指定的,每一个智能合约都会指定一个背书策略。
Peer节点代表着联盟链中的各个组织,区块链网络也是由Peer节点来组成的,而且也是账本和智能合约的载体。
通过对上面交易过程的了解可以知道,Peer节点是主要的参与方。如果用户想要访问账本资源,都必须要和peer节点进行交互。在一个Peer节点中,可以同时维护多个账本,这些账本属于不同的Channel。每个Peer节点都会维护一套冗余账本,这样就避免了单点故障。
Peer节点根据在交易中的不同角色,可以分成背书节点(Endorser)和记账节点(Committer),背书节点会对交易进行模拟执行,记账节点才会真正将数据存储到账本中。
账本可以分成两个部分,一部分是区块链,另一部分是CurrentState,也被称之为WorldState。
区块链上只能追加,不能对过去的数据进行修改,链上也包含两部分信息,一部分是通道的配置信息,另一部分是不可修改,序列化的记录。每一个区块记录前一个区块的信息,然后连成链,如下图所示:
第一个区块被称之为genesisblock,其中不存储交易信息。每个区块可以被分为区块头、区块数据和区块元数据。区块头中存储着当前区块的区块号、当前区块的hash值和上一个区块的hash值,这样才能把所有的区块连接起来。区块数据中包含了交易数据。区块元数据中则包括了区块写入的时间、写入人及签名。
其中每一笔交易的结构如下,在Header中,包含了ChainCode的名称、版本信息。Signature就是交易发起用户的签名。Proposal中主要是一些参数。Response中是智能合约执行的结果。Endorsements中是背书结果返回的结果。
WorldState中维护了账本的当前状态,数据以Key-Value的形式存储,可以快速查询和修改,每一次对WorldState的修改都会被记录到区块链中。WorldState中的数据需要依赖外部的存储,通常使用LevelDB或者CouchDB。
区块链和WorldState组成了一个完整的账本,WorldState保证的业务数据的灵活变化,而区块链则保证了所有的修改是可追溯和不可篡改的。
在交易完成之后,数据已经写入账本,就需要将这些数据同步到其他的Peer,Fabric中使用的是Gossip协议。Gossip也是Channel隔离的,只会在Channel中的Peer中广播和同步账本数据。
智能合约需要安装到Peer节点上,智能合约是访问账本的唯一方式。智能合约可以通过Go、Java等变成语言进行编写。
智能合约编写完成之后,需要打包到ChainCode中,每个ChainCode中可以包含多个智能合约。ChainCode需要安装,ChainCode需要安装到Peer节点上。安装好了之后,ChainCode需要在Channel上实例化,实例化的时候需要指定背书策略。
智能合约在实例化之后就可以用来与账本进行交互了,流程图如下:
用户编写并部署实例化智能合约之后,就可以通过客户端应用程序来向智能合约提交请求,智能合约会对WorldState中数据进行get、put或者delete。其中get操作直接从WorldState中读取交易对象当前的状态信息,不会去区块链上写入信息,但put和delete操作除了修改WorldState,还会去区块链中写入一条交易信息,且交易信息不能修改。
区块链上的信息可以通过智能合约访问,也可以在客户端应用通过API直接访问。
Event是客户端应用和Fabric网络交互的一种方式,客户端应用可以订阅Event,当Event发生时,客户端应用就会接受到消息。
事件源可以两类,一类是智能合约发出的Event,另一类是账本变更触发的Event。用户可以从Event中获取到交易的信息,比如区块高度等信息。
在这篇文章中,首先介绍了Fabric整体的网络架构,通过对Fabric交易流程的分析,讨论了peer节点在交易中的作用,然后详细分析了peer节点所维护的账本和智能合约,并分析了peer节点维护账本以及peer节点执行智能合约的流程。
文/Rayjun
[1]
[2]
[3]
区块链的分类目前区块链分为三类,其中混合区块链和私有区块链可视为:广义私有链,公共区块链公共区块链。意味着世界上任何个人或团体都可以发送交易,交易可以由区块链有效确认,任何人都可以参与其共识过程。公共区块链是目前最早的区块链,也是使用最广泛的区块链。每个比特币系列的虚拟数字货币都以公共的区块链为基础,世界上只有一个区块链对应这种货币。
拓展资料
1.工业区块链行业blockchains:组内多个预选节点指定为记账员,每个区块的生成由所有预选节点共同决定(预选节点参与共识过程),其他接入节点可以参与交易,但不干扰核算过程(本质上,它是管理簿记,但它成为分布式簿记。多少预先选择的节点和如何确定每个块的簿记员成为区块链的主要风险点),其他任何人都可以通过区块链的开放API进行有限的查询。私人区块链Private区块链((privateblockchains)):只有区块链的总账技术用于记账。它可以是一个公司或个人独家书面许可的区块链。这个链与其他分布式存储方案没有太大的不同。目前(2015年12月),保守的巨头(传统金融)想要尝试私有的区块链,而公共链的应用,如比特币,已经产业化,私有链的应用产品还在探索中。区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的一种新的应用模式。区块链是比特币的一个重要概念。本质上,它是一个去中心化的数据库。
2.同时,作为比特币的底层技术,它是一系列与加密方法相关联的数据块。每个数据块包含一批比特币网络交易信息,验证其信息的有效性(防伪)并生成下一个区块。事实上,区块链这个词并没有出现在英文原版的比特币白皮书中,而是出现在区块链中。在最早的比特币白皮书中,区块链被翻译为区块链。这是汉语“区块链”最早出现的时间。国家互联网信息办公室于2019年1月10日发布《区块链信息服务管理条例》,自2019年2月15日起施行。从狭义上讲,区块链是一种按时间顺序组合数据块的链式数据结构,以及由密码学保证的防篡改和可伪造的分布式分类帐。广义上讲,区块链技术是一种新的分布式基础设施和计算方法,它使用区块链数据结构来验证和存储数据,使用分布式节点共识算法来生成和更新数据,使用密码学来确保数据传输和访问的安全性,采用由自动脚本代码组成的智能契约对数据进行编程和操作。
节点的类型有哪些?比特币P2P网络中的各个节点相互对等,但是根据所提供的功能不同,各节点可能具有不同的分工,每个比特币节点都是钱包、矿工、完整区块链、网络路由节点的功能集合。
主流区块链技术有哪些本文试图对区块链有关技术流派和主流平台进行一个概览,作为学习区块链技术体系的导览,意在抛砖引玉,促进区块链开发社区的讨论与共识。区块链技术的流派未战先谋局,你想投入区块链开发这个领域,至少先要搞清楚现在有哪些玩家,各自的主张和实力如何。划分区块链技术流派并无一定之规,据我所见,或可有以下四种方式:第一是按照节点准入规则,划分为公有链、私有链和联盟链。公有链的代表自然是比特币和以太坊,私有链则以R3Corda声名最盛,联盟链的代表作品是Hyperledger名下的Fabric。公有链注重匿名性与去中心化,而私有链及联盟链注重高效率,而且还往往设置了准入门槛。公有链、私有链与联盟链之间的这些不同都在技术中有所体现,比如私有链和联盟链假设节点数目不大,可以采用PBFT算法来形成共识。而公有链假设有大量且不断动态变化的节点网络,用PBFT效率太低,只能采用类似抽彩票的算法来确定意见领袖。这就意味着,私有链与联盟链很难变成公有链,而用公有链来作联盟链或私有链虽然容易,却也并非即插即用。此种差异,学者不可不察。第二是按照共享目标,划分为共享账本和共享状态机两派。比特币是典型的共享账本,而Chain和BigchainDB也应属此类,这几个区块链系统在各个节点之间共享一本总账,因此对接金融应用比较方便。另一大类区块链系统中,各个节点所共享的是可完成图灵完备计算的状态机,如以太坊、Fabric,它们都通过执行智能合约而改变共享状态机状态,进而达成种种复杂功能。第三是按照梅兰妮·斯旺所描述的代际演进,将区块链系统分为1.0、2.0和3.0三代。其中1.0支撑去中心化交易和支付系统,2.0通过智能合约支撑行业应用,3.0支撑去中心化的社会体系。比特币和Chain应属于区块链1.0系统,而以太坊和Fabric是区块链2.0系统,目前尚无成功的区块链3.0系统出现,不成功的尝试倒是有那么一个,就是著名的TheDAO。第四是按照核心数据结构,分为区块链和分布式总账两派。区块链这一派在系统中真的实现了一个区块的链作为核心数据结构,而分布式总账这一派,只是吸取了区块链的精神,并没有真用一条区块链作为核心数据结构,或者虽然暂时用了,但声明说吾项庄舞区块链,意在分布式总账耳,若假以时日,因缘际会,未尝不可取而代之也。主流区块链技术平台了解流派划分,仍是只能用来指点江山,吹牛论道,要动手,总要有个切入点。区块链货币据说已经有上千个了,但值得关注的技术平台大概只有数十个,而如果要进入区块链开发领域,打下一个好基础,练出一身好功夫,捞到几个好offer,则值得深入研究学习的平台,屈指可数。首先当然是比特币。比特币作为区块链的第一个也是目前为止最成功、最重要的样板工程,已经上线运行了八年多,本身没有发生任何严重的安全和运维事故,其稳定与强悍堪称当代软件系统典范。比特币BitcoinCore是一个代码质量高、文档良好的开源软件,从学习区块链原理、掌握核心技术的角度来说,BitcoinCore是最佳切入点,能够学到原汁原味的区块链技术。当然,BitcoinCore是用C++写的,而且用了一些C++11和Boost库的机制,对学习者的C++水平提出了较高的要求。学习比特币平台开发还有一个优势,就是可以对接繁荣的比特币技术社区。目前围绕比特币进行改进和提升的人很多,人多力量就大,诸如隔离验证、闪电网络、侧链等比较新的想法和技术,都率先在比特币社区里落地。比如侧链技术的主要领导者Blockstream是由密码学货币元老AdamBack领衔的,而Blockstream是BitcoinCore最大的贡献者之一,所以一些有关侧链的技术在比特币社区里讨论最充分。但比特币作为一个典型的区块链1.0系统,是不是支撑其他类型区块链应用的最佳技术平台,存在很大的争议。另外,也不是所有人都有能力和必要精通区块链底层技术。所以对那些急于冲到区块链领域里做(quān)事(qián)的人来说,可能更直截了当的学习目标是以太坊和HyperledgerFabric。在以太坊上面用Solidity进行的智能合约开发是切入区块链开发最简单的方式,没有之一。以太坊的理想非常宏大,由于配备了强大的图灵完备的智能合约虚拟机,因此可以成为一切区块链项目的母平台,是驮住整个区块链世界的大乌龟。在以太坊上开发一个类似比特币的加密货币,是一个不折不扣的小目标。一般有经验的开发者在文档指导下,半天到一天即可入门。问题在于,入门以后又如何?靠写Solidity是否就可以包打天下?这是大大存疑的。我们也可以反过来说,如果以太坊+Solidity是区块链的终极解决方案,那么怎么还会出现那么多区块链技术门派呢?特别是,以太坊似乎并没有给现实世界中巨型的中心化组织们留下一条活路,这种彻底不妥协的革命态度有可能也成为以太坊推广的障碍。当前以太坊项目的开发进展并不顺利。一个比较突出的问题是项目过多,力量分散,导致项目质量参差不齐。但尽管如此,跟其他区块链2.0平台相比,以太坊提供的开发环境是最简单最完善的。初学区块链的人绝对有必要学习以太坊,从而对区块链和智能合约建立起一个最“正宗”的认识。主流区块链技术平台的第三支就是Fabric,它是Hyperledger的第一个也是最知名的孵化项目。Fabric最早来自IBM的OpenBlockchain项目,到2015年11月,IBM将当时已经开发完成的44,000行Go语言代码交给Linux基金会,并入Hyperledger项目之中。在2016年3月一次黑客马拉松中,Blockstream和DAH两家公司将各自的代码并入OpenBlockchain,随后改名为Fabric。到目前为止,Fabric与Intel提供的SawtoothLake并列为Hyperledger的一级孵化项目,但前者得到的关注远超后者。从技术角度来说,Fabric思路不错,重点是满足企业商用的需求,比如解决交易量问题。众所周知,比特币最大的短板是它每秒钟7个交易的上限,完全无法满足现实需要。而Fabric目标是实现每秒钟10万交易,这个量接近刚刚过去的双十一交易量瞬时峰值,完全可以满足正常条件下的行业级应用。Fabric用Go语言开发,也提供多种语言的API。特别值得一提的是,Fabric比较充分地运用了容器技术,比如其智能合约就运行在容器当中。这也是Go语言带给Fabric的一项福利,因为Go语言静态编译部署的特征很适合开发容器中的程序。Fabric还有一些特点,比如其membership服务可以设置节点准入审查,这是典型的联盟链特征。再比如其共识算法是可定制的。Fabric的短板是体系较为复杂,虽有文档,但缺少经验的开发者学习起来障碍比较大。然而由于其定位清楚,迎合了不少企业的心态,所以已经有多家机构在基于Fabric秘密研发行业内的联盟链项目。
本文来自用户投稿,不代表币大大立场,如若转载,请注明出处:https://czxurui.com/jys/184762.html


发表回复
评论列表(0条)