一、什么是区块链节点传输(区块链里面的节点是什么意思吗)
区块链节点是什么意思?
区块链节点的意思是一个连接在区块链网络上的智能设备,都可以称之为一个节点,只是这个节点根据设备的特性可能起到不同的作用。这是分布式网络的一个很大的特点,并且整个区块链网络上节点越多,意味着这个区块链网络分布得越广泛,越稳定以及越安全。节点包含了手机,矿机和服务器等等。操作一个节点的可以是普通的钱包用户,矿工和多个人协作的矿池用户。”
【拓展资料】
节点就是一个区域的服务器。在互联网区域,一个企业所有运行的数据都在一个服务器里,那么这个服务器就是节点。
就像是我们每天使用的微信,每天处理着这么多的聊天信息、转账等。这些数据的存储和运行都在腾讯的公司的服务器里面。那么这个处理数据的服务器,我们就可以称之为“节点”。再说区块链的世界,大家都已经知道区块链是去中心化的分布式数据库,它不依托于哪一个中心化的服务器,是由千千万万个“小服务器”组成。只要我们下载一个区块链客户端,我们就变成了那千千万万个“小服务器”中的一员。
这样来说,如果我们要玩区块链的话,我们自己就相当于是一个节点。
节点也分轻节点和全节点。全节点就是拥有全网所有的交易数据的节点,那么轻节点就是只拥有和自己相关的交易数据节点。而且节点分布越多、越广泛,区块链网络就更加的去中心化,网络运行也就越安全稳定。比如说链信,现在链信用户有1600万,这样就说明,现在链信节点也是有很多。现在想玩区块链的朋友可以去试试链信。链信是一个不错的区块链应用。
节点的存在就是区块链分布式的表征,也是区块链的魅力所在。
区块链是个分布式系统,系统里有很多节点,这些节点你只要单纯地理解为通过互联网相连的电脑或者服务器就好了。然后根据区块链性质的不同,成为节点的方式也不同,当然,对于节点的定义也不同。对于像比特币这样的公有链,理论上来讲,你下载完整的区块链,参与交易和挖矿,才算是节点。
然而,在现在的比特币里,矿工,完全节点,轻量节点,甚至普通用户,在不同的语境下都可能被称为节点。但无论如何,比特币的系统与其说是“连入网络就会自动更新区块链”,不如说是你想要挖矿或者是交易(同时你不信任其他人的验证结果),就必须更新整条区块链,这不是一个自动义务的事情,而是自愿的事情。
什么是区块链
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。
区块链(Blockchain)是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
区块链的主要作用是储存信息。任何需要保存的信息,都可以写入区块链,也可以从里面读取,所以它是数据库。
其次,任何人都可以架设服务器,加入区块链网络,成为一个节点。区块链的世界里面,没有中心节点,每个节点都是平等的,都保存着整个数据库。你可以向任何一个节点,写入/读取数据,因为所有节点最后都会同步,保证区块链一致。
/iknow-pic.cdn.bcebos.com/0b46f21fbe096b63eeec4ae601338744eaf8ac8a"target="_blank"title="点击查看大图"class="ikqb_img_alink"/iknow-pic.cdn.bcebos.com/0b46f21fbe096b63eeec4ae601338744eaf8ac8a?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto"esrc=""/
扩展资料
一、区块链的最大特点:
分布式数据库并非新发明,市场上早有此类产品。但是,区块链有一个革命性特点。
区块链没有管理员,它是彻底无中心的。其他的数据库都有管理员,但是区块链没有。如果有人想对区块链添加审核,也实现不了,因为它的设计目标就是防止出现居于中心地位的管理当局。
二、局限性
为了保证数据的可靠性,区块链也有自己的代价。一是效率,数据写入区块链,最少要等待十分钟,所有节点都同步数据,则需要更多的时间;二是能耗,区块的生成需要矿工进行无数无意义的计算,这是非常耗费能源的。
1、不存在所有成员都信任的管理当局。
2、写入的数据不要求实时使用。
3、挖矿的收益能够弥补本身的成本。
如果无法满足上述的条件,那么传统的数据库是更好的解决方案。
参考资料来源:/baike.baidu.com/item/%E5%8C%BA%E5%9D%97%E9%93%BE/13465666"target="_blank"title="百度百科-区块链"百度百科-区块链
什么是区块链技术?什么叫区块链?1、区块链技术
狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。
广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。
2、区块链的含义
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。
扩展资料
区块链技术基础的三部分
1、点对点之间传输信息的网络,简称P2P网络。有了这个网络,任一节点可以把自己的交易信息向网络进行“广播”,同时获取总账内容。
2、密码技术。采取“公钥”和“私钥”相结合的方式,确保交易账户的安全。
3、共识机制。即网络中的所有节点需对区块链的算法达成共识,节点之间无须互相信任,通过算法计算出的信息可以确保交易可靠并实现数据安全存储。同时,节点产生的每一个新区块,需要得到全网络51%以上的共同认可,才能加入全网的区块链中,构成不可篡改的总账的历史记录之一。
参考资料来源:百度百科-区块链
二、区块链如何部署节点(区块链节点之间如何通信)
浅析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]
京东公开“区块链网络部署方法及存储介质”专利
京东旗下北京京东尚科信息技术有限公司、北京京东世纪贸易有限公司日前公开一种“区块链网络、部署方法及存储介质”专利,申请日期为2018年,申请公布号:CN109218079A。
天眼查App显示,该区块链网络包括共识节点,数量为至少两个,对应参与业务的业务主体在所述业务中所实现的角色而部署;所述共识节点,用于对终端提交的交易排序后打包为新区块,执行所述新区块中的交易得到交易结果;对所述交易结果在所述区块链网络中共识节点之间执行共识,并根据执行共识后的交易结果更新所述共识节点维护的账本。
企业如何建立自己的区块链?你好,谢邀!
企业如何建立自己的区块链?
随着各种币交易的流行,从而带动了交易所行业的发展,那么作为想要跨行业的小白,如何建立一个区块链交易所开发公司?链软网络为你总结了以下几点。
请点击输区块链入图片描述
1.确定交易所开发公司的运营范围
确定公司的运营范围很重要,这关乎到公司是否有盈利的可能。每天区域的相关法律法规都不一样,因此第一步是要先了解当地法律法规,并且需要获得必要的许可和批准,以便根据您的运营范围开设比特币交易所,避免触犯当地法律法规,带来不必要的麻烦。
2.查看国家/地区的法规和合规性要求
几乎所有政府都要求参与货币兑换业务的实体遵守“了解客户”(KYC)规范。KYC是企业通过政府颁发的身份证或护照验证其客户身份的过程。这里的主要目的是防止洗钱。确保遵守您所在国家/地区的KYC规范,并在您的交易所中集成合适的客户验证程序。
3.与银行或付款处理方合作
您需要与银行或支付提供商合作,通过法定货币处理付款。可以选择一家拥有大量在线设施的值得信赖的银行。
4.在您的交易所创造流动性
任何交易所都需要流动性才能成功运作。客户在下订单甚至存入资金时犹豫不决,除非他们看到完整的订单和交易活动。新交易自然会遇到流动性问题。
5.确保交易和客户数据的高级别安全性
任何交易所开发公司都需要一流的安全性,以确保交易所运营商和交易员的资金保持安全。这也应该适用于您的客户的私人数据,包括他们的KYC详细信息和银行帐户信息。多年来安全漏洞未被注意到的Gox漏洞导致当时流通的比特币总数的近1%被盗。据链软网络获悉,在2009年至2019年期间,所有比特币交易所中有三分之一被黑客入侵。因此安全性必须是您交易中的首要任务。
6.建立客户支持渠道
最后,客户支持是成功交换的另一个重要组成部分。需要工作人员来批准KYC请求,回答客户投诉,处理存款和提取法定货币等。快速的客户支持机制可确保您的客户从签署之日起开始交易并为您的交换创造收入。
希望有帮助帮助到你解决相关问题,更多问题详情欢迎随时咨询探讨!
区块链落地需解决四个核心问题访交通银行投资银行业务中心总裁陈维随着区块链概念的持续升温以及这一技术的日益成熟,包括银行在内的金融机构也在加大这一领域的布局和应用。《太古宙-2019年中国区块链金融行业研究报告》指出,金融机构区块链投入呈逐年增长态势,预计至2022年,中国金融机构区块链技术投入将达92.7亿元。
陈维指出,资产证券化业务的本质是用资产信用来取代主体信用,而借助区块链技术,可实现技术互信取代机构互信,这两点使得区块链技术契合资产证券化业务场景的需要。基于此,交通银行推出了国内首个区块链资产证券化平台――“链交融”。陈维还表示,区块链技术还将为上海推进“长三角一体化”、建设国际资产管理中心等方面发挥积极作用。
“效率+信任”问题待解决
《中国经营报》:尽管不少银行已经探索并研究区块链,但最终落地项目较少。你认为,区块链技术落地难的原因是什么?
陈维:由于区块链主要采用联盟链的技术,这使得银行探索将区块链技术运用在具体业务落地时,主要面临以下四个问题:
第一个是安全。商业银行是整个金融系统基础设施建设中的重要参与者,对可靠性和安全性要求特别高。在新技术的运用过程中,安全性要求是最重要的,也是必须要满足的。由于区块链技术运用目前尚处于探索阶段,这可能会影响区块链技术应用在具体业务上的落地。
第二个是效率。在去中心化的设定下,所有的节点要达成共识并且将数据进行处理,这就需要花费很多的时间,因此目前业务效率较难得到有效兼顾。银行的一些传统业务,比如支付、转账、汇款等业务场景,对时间效率和数据存储等方面的要求较高,因此区块链技术目前与这些业务场景结合仍存在一定困难。
第三个是跨机构共识。联盟链需要联盟各方达成一致,共同推进链的形成和扩张,但在实际业务推进过程中,不同机构对区块链的认识、对联盟链的需求差异较大,存在一定的协调和推进难度。
第四个是经济成本。区块链应用对银行技术开发能力要求较高,同时还需配套大量软硬件资源,比如:联盟链需要部署节点、形成共识算法等一系列服务;银行需要投入大量人力、财力资源进行开发。这些投入在短期内可能无法直接产生可见的经济利润,会出现成本和收益的跨期错配。任何一家金融机构,无论上市与否,都会面临当期考核的问题,使得成本的当期性和收益的滞后性存在一定矛盾。
当然,尽管存在这四个主要矛盾,不少银行都在摸着石头过河、不断探索。可以说,在这方面交通银行积极响应国家号召,在区块链技术应用方面走在了同业前列,尤其在资产证券化领域实现了多项突破。
陈维:所谓效率就是时间问题,信任就是安全问题。
关于效率问题,结合交通银行的探索和实践,可通过以下三个方式加以解决:第一,通过链上智能合约的自动化方式,来提高业务流程的办理效率;第二,研究高性能的公有链技术,来满足交易并发情况下的计算、存储能力;第三,借助云计算,利用云的存储能力,提高效率,同时降低经济成本。
关于信任问题,主要有三种解决方式:第一,上链之前达成共识,参与方在上链之前必须要签署协议表示同意,避免业务开展过程中,因未达成共识而导致效率降低、难落地的情况发生;第二,采用数字签名和非对称加密技术,对数据进行加密以后再进行上链,确保只有授权方才能看到数据,实现数据权限的控制;第三,区块链技术采用分布式账本,实现数据的不能篡改,同时还可以进行追溯,确保各参与方对链上的数据保持较高的信任度。
助推长三角资产和资金“同城化”
《中国经营报》:交通银行在区块链场景探索方面有哪些特色和亮点?
陈维:当前市场上有很多关于区块链使用场景的探讨,在区块链赋能金融方面,资产证券化业务是最适合的场景之一。交通银行基于在资产证券化市场的实践探索及先发优势,自2016年来已尝试探索区块链应用于资产证券化业务场景,并于2018年正式对外发布了国内首个区块链资产证券化平台――“链交融”。该平台已获得两项技术专利――《一种基于智能合约的跨机构流程解决方案》和《基于智能合约的Fabric区块链管理方案》,并荣获上海市政府颁发的2018年度上海金融创新成果奖、《中国银行家》十佳区块链应用创新奖等奖项。
资产证券化业务参与机构众多,发行周期较长,同时交易结构也比较复杂,如何使业务更有效率地开展,就需要解决信息不对称问题。区块链技术具有去中心化、透明、共享、不可篡改四个特征,这就意味着区块链技术可以与资产证券化实现比较完美的结合。
从业务本身来讲,资产证券化业务的本质是用资产信用来取代主体信用;同时,借助区块链技术,可以实现技术互信取代机构互信,这两点使得区块链技术和资产证券化业务能够完美地契合。区块链技术可以在不需要第三方背书情况之下,实现系统中所有数据信息的公开、透明、不可篡改、不可伪造,同时还能对信息进行追溯。
《中国经营报》:在实践中,区块链技术如何赋能资产证券化业务?
陈维:在“链交融”平台上,借助区块链技术,将底层资产和尽调报告等资料,通过数字指纹永久储存在链上,借助区块链的透明、共享、不可篡改等特性,解决了资产证券化业务众多参与方之间的互信问题,实现信用穿透;通过一些算法实现链上文件的加密保护,有效缓解了信息泄露的风险。
同时,区块链技术的应用也降低了一些维护成本和系统运营的压力。自发行亚洲首单区块链技术赋能的信贷资产证券化项目“交盈2018年第一期个人住房抵押贷款资产支持证券”开始算起,截至目前,交通银行已经通过这个平台发行大约七八百亿元规模的项目。我们也一直致力于推动诸如国电电力等更多优质发起机构、专业投资人等资产证券化生态圈用户上链。
“链交融”是“金融创新联合实验室”的孵化成果,也是交通银行前中后台共同联动的产物。在前期研发中,业务部门凭借市场敏感度牵头整个项目,中后台部门协同合作。在区块链技术投入应用后,我们还在不断地与时俱进,对系统进行迭代升级。
除了交通银行内部协同来进行研发之外,交通银行还牵头成立了资产证券化业务生态圈――“陆家嘴资产证券化联盟”,通过与同业机构的合作,共同培育和发展生态圈系统,也是交通银行担当社会责任和实现社会价值的一种体现。
《中国经营报》:除了赋能银行具体业务之外,区块链技术在银行参与“长三角一体化”、服务上海建设国际资产管理中心等方面能提供哪些帮助?
陈维:区块链技术在资产证券化业务场景的应用实际上缩短了资产持有人和资金持有人之间的信息距离,同时也打破了行政区隔的界限。借助区块链技术,“链交融”平台的各个参与者达成资产共识和价格共识,举例来说,上海的资产可以对接到江苏的资金,从某种程度来说,促进了长三角区域的资产和资金的“同城化”。
同时,区块链技术对上海建设国际资产管理中心也能提供一定帮助。建设国际资产管理中心就意味着需要吸引大量的海外资金或者资金管理机构到上海,只有提供丰富的可供选择的优质资产才能把海外的资金或者机构留下来。资产证券化业务在国际市场已发展得相对成熟,规模也很大,相比之下,资产证券化业务在国内还处于发展阶段。随着中国对外开放力度的不断加大,未来将有越来越多的外资进入中国来投资一些国内的优质资产,“链交融”平台或将扮演更加重要的角色。
总体而言,区块链技术与上海的长三角一体化建设、自贸区建设以及建设全球金融科技中心、资产管理中心等战略课题都具有较为密切的联系,也将为服务国家战略做出新的更大贡献。
来源:中国经营网
区块链的基础知识有哪些?1、FISCOBCOS使用账户来标识和区分每一个独立的用户。在采用公私钥体系的区块链系统里,每一个账户对应着一对公钥和私钥。其中,由公钥经哈希等安全的单向性算法计算后,得到的地址字符串被用作该账户的账户名,即账户地址。仅有用户知晓的私钥则对应着传统认证模型中的密码。这类有私钥的账户也常被称为外部账户或账户。
2、FISCOBCOS中部署到链上的智能合约在底层存储中也对应一个账户,我们称这类账户为合约账户与外部账户的区别在于,合约账户的地址是部署时确定,根据部署者的账户地址及其账户中的信息计算得出,并且合约账户没有私钥。
3、SDK需要持有外部账户私钥,使用外部账户私钥对交易签名。区块链系统中,每一次对合约写接口的调用都是一笔交易,而每笔交易需要用账户的私钥签名。
4、权限控制需要外部账户的地址。FISCOBCOS权限控制模型,根据交易发送者的外部账户地址,判断是否有写入数据的权限。
5、合约账户地址唯一的标识区块链上的合约。每个合约部署后,底层节点会为其生成合约地址,调用合约接口时,需要提供合约地址。
如何部署Qtum量子链节点获取Qtum节点
可以通过以下四种方法之一获得Qtum节点程序:
1.直接下载二进制文件
如果你并不关心Qtum的源码,部署Qtum节点最方便的方法是在Qtumreleasepage(点击打开)下载最新的二进制文件,目前支持的平台包括Linux,Windows,OSX。建议选择最新版进行下载,本教程以撰写时的最新版v0.14.13为例。
(注意,你所看到最新版的版本号可能不同,如这里是0.14.13,其他字符串保持不变)
Mac用户请下载:qtum-0.14.13-osx64.tar.gz
Linux用户请下载:?qtum-0.14.13-i686-pc-linux-gnu.tar.gz(32位)或qtum-0.14.13-x86_64-linux-gnu.tar.gz(64位)
Windows用户请下载:qtum-0.14.13-win32.zip(32位)或qtum-0.14.13-win64.zip(64位)
树莓派用户请下载:qtum-0.14.13-arm-linux-gnueabihf.tar.gz
下载压缩包解压后,解压路径/bin/下包含qtumd和qtum-cli,即为本教程要用到的Qtum节点可执行文件。
?
三、区块链同步需要多少内存(区块链数据同步)
【区块链】什么是区块链钱包?
提起区块链钱包我们就不得不谈到比特币钱包(Bitcoincore),其他区块链钱包大多都是仿照比特币钱包做的,比特币钱包是我们管理比特币的工具。
比特币钱包里存储着我们的比特币信息,包括比特币地址(类似于你的银行卡账号)、私钥(类似于你的银行卡密码),比特币钱包可以存储多个比特币地址以及每个比特币地址所对应的独立私钥。
比特币钱包的核心功能就是保护你的私钥,如果钱包丢失你将可能永远失去你的比特币。
区块链钱包有很多种形态。
根据用户是否掌握私钥可将钱包分为:链上钱包(onchainwallet)和托管钱包(offchainwallet)。他们之间有如下两点区别:
关于链上钱包(onchainwallet)我们又可根据私钥存储是否联网划分为冷钱包和热钱包;冷钱包和热钱包我们也称之为离线钱包和在线钱包。
通常所说的硬件钱包就属于冷钱包(一般准备长期持有的大额数字货币建议使用冷钱包存放),除了这种专业的设备我们还可以使用离线的电脑、手机、纸钱包、脑钱包等作为冷钱包存储我们的数字资产。
冷钱包最大优点就是安全,因为它不触网的属性可以大大降低黑客攻击的可能性;唯一需要担心就是不要把自己的冷钱包弄丢即可。
与冷钱包相对应的就是热钱包,热钱包是需要联网的;热钱包又可分为桌面钱包、手机钱包和网页钱包。
热钱包往往是在线钱包的形式,因此在使用热钱包时最好在不同平台设置不同密码,且开启二次认证确保自己的资产安全。
根据区块链数据的维护方式和钱包的去中心化程度又可将钱包分为全节点钱包、轻节点钱包、中心化钱包。
全节点钱包大部分都属于桌面钱包,其中的代表有Bitcoin-Core核心钱包、Geth、Parity等等,此类钱包需要同步所有区块链数据,占用很大的内存,但可以实现完全去中心化。
而手机钱包和网页钱包大部分属于轻节点钱包,轻钱包依赖区块链网络中的其他全节点,仅同步与自己相关的交易数据,基本可以实现去中心化。
中心化钱包不依赖区块链网络,所有的数据均从自己的中心化服务器中获取;但是交易效率很高,可以实时到账,你在交易平台中注册的账号就是中心化钱包。
记住在区块链的世界里谁掌握私钥谁才是数字资产真正的主人。
全局节点什么意思
全节点是是拥有完整区块链账本的节点,全节点需要占用内存同步所有的区块链数据,能够独立校验区块链上的所有交易并实时更新数据,主要负责区块链的交易的广播和验证。
请问,大学生区块链本科专业,电脑需要什么样的配置够用?学生的电脑普通电脑配置就够用了,三四千块钱的台式机用起来就不错
什么是区块链扩容?普通用户能够运行节点对于区块链的去中心化至关重要
想象一下凌晨两点多,你接到了一个紧急呼叫,来自世界另一端帮你运行矿池(质押池)的人。从大约14分钟前开始,你的池子和其他几个人从链中分离了出来,而网络仍然维持着79%的算力。根据你的节点,多数链的区块是无效的。这时出现了余额错误:区块似乎错误地将450万枚额外代币分配给了一个未知地址。
一小时后,你和其他两个同样遭遇意外的小矿池参与者、一些区块浏览器和交易所方在一个聊天室中,看见有人贴出了一条推特的链接,开头写着“宣布新的链上可持续协议开发基金”。
到了早上,相关讨论广泛散布在推特以及一个不审查内容的社区论坛上。但那时450万枚代币中的很大一部分已经在链上转换为其他资产,并且进行了数十亿美元的defi交易。79%的共识节点,以及所有主要的区块链浏览器和轻钱包的端点都遵循了这条新链。也许新的开发者基金将为某些开发提供资金,或者也许所有这些都被领先的矿池、交易所及其裙带所吞并。但是无论结果如何,该基金实际上都成为了既成事实,普通用户无法反抗。
或许还有这么一部主题电影。或许会由MolochDAO或其他组织进行资助。
这种情形会发生在你的区块链中吗?你所在区块链社区的精英,包括矿池、区块浏览器和托管节点,可能协调得很好,他们很可能都在同一个telegram频道和微信群中。如果他们真的想出于利益突然对协议规则进行修改,那么他们可能具备这种能力。以太坊区块链在十小时内完全解决了共识失败,如果是只有一个客户端实现的区块链,并且只需要将代码更改部署到几十个节点,那么可以更快地协调客户端代码的更改。能够抵御这种社会性协作攻击的唯一可靠方式是“被动防御”,而这种力量来自去一个中心化的群体:用户。
想象一下,如果用户运行区块链的验证节点(无论是直接验证还是其他间接技术),并自动拒绝违反协议规则的区块,即使超过90%的矿工或质押者支持这些区块,故事会如何发展。
如果每个用户都运行一个验证节点,那么攻击很快就会失败:有些矿池和交易所会进行分叉,并且在整个过程中看起来很愚蠢。但是即使只有一些用户运行验证节点,攻击者也无法大获全胜。相反,攻击会导致混乱,不同用户会看到不同的区块链版本。最坏情况下,随之而来的市场恐慌和可能持续的链分叉将大幅减少攻击者的利润。对如此旷日持久的冲突进行应对的想法本身就可以阻止大多数攻击。
Hasu关于这一点的看法:
“我们要明确一件事,我们之所以能够抵御恶意的协议更改,是因为拥有用户验证区块链的文化,而不是因为PoW或PoS。”
假设你的社区有37个节点运行者,以及80000名被动监听者,对签名和区块头进行检查,那么攻击者就获胜了。如果每个人都运行节点的话,攻击者就会失败。我们不清楚针对协同攻击的启动群体免疫的确切阈值是多少,但有一点是绝对清楚的:好的节点越多,恶意的节点就越少,而且我们所需的数量肯定不止于几百几千个。
那么全节点工作的上限是什么?
为了使得有尽可能多的用户能够运行全节点,我们会将注意力集中在普通消费级硬件上。即使能够轻松购买到专用硬件,这能够降低一些全节点的门槛,但事实上对可扩展性的提升并不如我们想象的那般。
全节点处理大量交易的能力主要受限于三个方面:
算力:在保证安全的前提下,我们能划分多少CPU来运行节点?
带宽:基于当前的网络连接,一个区块能包含多少字节?
存储:我们能要求用户使用多大的空间来进行存储?此外,其读取速度应该达到多少?(即,HDD足够吗?还是说我们需要SSD?)
许多使用“简单”技术对区块链进行大幅扩容的错误看法都源自于对这些数字过于乐观的估计。我们可以依次来讨论这三个因素:
算力
错误答案:100%的CPU应该用于区块验证
正确答案:约5-10%的CPU可以用于区块验证
限制之所以这么低的四个主要原因如下:
我们需要一个安全边界来覆盖DoS攻击的可能性(攻击者利用代码弱点制造的交易需要比常规交易更长的处理时间)
节点需要在离线之后能够与区块链同步。如果我掉线一分钟,那我应该要能够在几秒钟之内完成同步
运行节点不应该很快地耗尽电池,也不应该拖慢其他应用的运行速度
节点也有其他非区块生产的工作要进行,大多数是验证以及对p2p网络中输入的交易和请求做出响应
请注意,直到最近大多数针对“为什么只需要5-10%?”这一点的解释都侧重于另一个不同的问题:因为PoW出块时间不定,验证区块需要很长时间,会增加同时创建多个区块的风险。这个问题有很多修复方法,例如BitcoinNG,或使用PoS权益证明。但这些并没有解决其他四个问题,因此它们并没有如许多人所料在可扩展性方面获得巨大进展。
并行性也不是灵丹妙药。通常,即使是看似单线程区块链的客户端也已经并行化了:签名可以由一个线程验证,而执行由其他线程完成,并且有一个单独的线程在后台处理交易池逻辑。而且所有线程的使用率越接近100%,运行节点的能源消耗就越多,针对DoS的安全系数就越低。
带宽
错误答案:如果没2-3秒都产生10MB的区块,那么大多数用户的网络都大于10MB/秒,他们当然都能处理这些区块
正确答案:或许我们能在每12秒处理1-5MB的区块,但这依然很难
如今,我们经常听到关于互联网连接可以提供多少带宽的广为传播的统计数据:100Mbps甚至1Gbps的数字很常见。但是由于以下几个原因,宣称的带宽与预期实际带宽之间存在很大差异:
“Mbps”是指“每秒数百万bits”;一个bit是一个字节的1/8,因此我们需要将宣称的bit数除以8以获得字节数。
网络运营商,就像其他公司一样,经常编造谎言。
总是有多个应用使用同一个网络连接,所以节点无法独占整个带宽。
P2P网络不可避免地会引入开销:节点通常最终会多次下载和重新上传同一个块(更不用说交易在被打包进区块之前还要通过mempool进行广播)。
当Starkware在2019年进行一项实验时,他们在交易数据gas成本降低后首次发布了500kB的区块,一些节点实际上无法处理这种大小的区块。处理大区块的能力已经并将持续得到改善。但是无论我们做什么,我们仍然无法获取以MB/秒为单位的平均带宽,说服自己我们可以接受1秒的延迟,并且有能力处理那种大小的区块。
存储
错误答案:10TB
正确答案:512GB
正如大家可能猜到的,这里的主要论点与其他地方相同:理论与实践之间的差异。理论上,我们可以在亚马逊上购买8TB固态驱动(确实需要SSD或NVME;HDD对于区块链状态存储来说太慢了)。实际上,我用来写这篇博文的笔记本电脑有512GB,如果你让人们去购买硬件,许多人就会变得懒惰(或者他们无法负担800美元的8TBSSD)并使用中心化服务。即使可以将区块链装到某个存储设备上,大量活动也可以快速地耗尽磁盘并迫使你购入新磁盘。
一群区块链协议研究员对每个人的磁盘空间进行了调查。我知道样本量很小,但仍然...
请点击输入图片描述
此外,存储大小决定了新节点能够上线并开始参与网络所需的时间。现有节点必须存储的任何数据都是新节点必须下载的数据。这个初始同步时间(和带宽)也是用户能够运行节点的主要障碍。在写这篇博文时,同步一个新的geth节点花了我大约15个小时。如果以太坊的使用量增加10倍,那么同步一个新的geth节点将至少需要一周时间,而且更有可能导致节点的互联网连接受到限制。这在攻击期间更为重要,当用户之前未运行节点时对攻击做出成功响应需要用户启用新节点。
交互效应
此外,这三类成本之间存在交互效应。由于数据库在内部使用树结构来存储和检索数据,因此从数据库中获取数据的成本随着数据库大小的对数而增加。事实上,因为顶级(或前几级)可以缓存在RAM中,所以磁盘访问成本与数据库大小成正比,是RAM中缓存数据大小的倍数。
不要从字面上理解这个图,不同的数据库以不同的方式工作,通常内存中的部分只是一个单独(但很大)的层(参见leveldb中使用的LSM树)。但基本原理是一样的。
例如,如果缓存为4GB,并且我们假设数据库的每一层比上一层大4倍,那么以太坊当前的~64GB状态将需要~2次访问。但是如果状态大小增加4倍到~256GB,那么这将增加到~3次访问。因此,gas上限增加4倍实际上可以转化为区块验证时间增加约6倍。这种影响可能会更大:硬盘在已满状态下比空闲时需要花更长时间来读写。
这对以太坊来说意味着什么?
现在在以太坊区块链中,运行一个节点对许多用户来说已经是一项挑战,尽管至少使用常规硬件仍然是可能的(我写这篇文章时刚刚在我的笔记本电脑上同步了一个节点!)。因此,我们即将遭遇瓶颈。核心开发者最关心的问题是存储大小。因此,目前在解决计算和数据瓶颈方面的巨大努力,甚至对共识算法的改变,都不太可能带来gaslimit的大幅提升。即使解决了以太坊最大的DoS弱点,也只能将gaslimit提高20%。
对于存储大小的问题,唯一解决方案是无状态和状态逾期。无状态使得节点群能够在不维护永久存储的情况下进行验证。状态逾期会使最近未访问过的状态失活,用户需要手动提供证明来更新。这两条路径已经研究了很长时间,并且已经开始了关于无状态的概念验证实现。这两项改进相结合可以大大缓解这些担忧,并为显著提升gaslimit开辟空间。但即使在实施无状态和状态逾期之后,gaslimit也可能只会安全地提升约3倍,直到其他限制开始发挥作用。
另一个可能的中期解决方案使使用ZK-SNARKs来验证交易。ZK-SNARKs能够保证普通用户无需个人存储状态或是验证区块,即使他们仍然需要下载区块中的所有数据来抵御数据不可用攻击。另外,即使攻击者不能强行提交无效区块,但是如果运行一个共识节点的难度过高,依然会有协调审查攻击的风险。因此,ZK-SNARKs不能无限地提升节点能力,但是仍然能够对其进行大幅提升(或许是1-2个数量级)。一些区块链在layer1上探索该形式,以太坊则通过layer2协议(也叫ZKrollups)来获益,例如zksync,Loopring和Starknet。
分片之后又会如何?
分片从根本上解决了上述限制,因为它将区块链上包含的数据与单个节点需要处理和存储的数据解耦了。节点验证区块不是通过亲自下载和执行,而是使用先进的数学和密码学技术来间接验证区块。
因此,分片区块链可以安全地拥有非分片区块链无法实现的非常高水平的吞吐量。这确实需要大量的密码学技术来有效替代朴素完整验证,以拒绝无效区块,但这是可以做到的:该理论已经具备了基础,并且基于草案规范的概念验证已经在进行中。
以太坊计划采用二次方分片(quadraticsharding),其中总可扩展性受到以下事实的限制:节点必须能够同时处理单个分片和信标链,而信标链必须为每个分片执行一些固定的管理工作。如果分片太大,节点就不能再处理单个分片,如果分片太多,节点就不能再处理信标链。这两个约束的乘积构成了上限。
可以想象,通过三次方分片甚至指数分片,我们可以走得更远。在这样的设计中,数据可用性采样肯定会变得更加复杂,但这是可以实现的。但以太坊并没有超越二次方,原因在于,从交易分片到交易分片的分片所获得的额外可扩展性收益实际上无法在其他风险程度可接受的前提下实现。
那么这些风险是什么呢?
最低用户数量
可以想象,只要有一个用户愿意参与,非分片区块链就可以运行。但分片区块链并非如此:单个节点无法处理整条链,因此需要足够的节点以共同处理区块链。如果每个节点可以处理50TPS,而链可以处理10000TPS,那么链至少需要200个节点才能存续。如果链在任何时候都少于200个节点,那可能会出现节点无法再保持同步,或者节点停止检测无效区块,或者还可能会发生许多其他坏事,具体取决于节点软件的设置。
在实践中,由于需要冗余(包括数据可用性采样),安全的最低数量比简单的“链TPS除以节点TPS”高几倍,对于上面的例子,我们将其设置位1000个节点。
如果分片区块链的容量增加10倍,则最低用户数也增加10倍。现在大家可能会问:为什么我们不从较低的容量开始,当用户很多时再增加,因为这是我们的实际需要,用户数量回落再降低容量?
这里有几个问题:
区块链本身无法可靠地检测到其上有多少唯一用户,因此需要某种治理来检测和设置分片数量。对容量限制的治理很容易成为分裂和冲突的根源。
如果许多用户突然同时意外掉线怎么办?
增加启动分叉所需的最低用户数量,使得防御恶意控制更加艰难。
最低用户数为1,000,这几乎可以说是没问题的。另一方面,最低用户数设为100万,这肯定是不行。即使最低用户数为10,000也可以说开始变得有风险。因此,似乎很难证明超过几百个分片的分片区块链是合理的。
历史可检索性
用户真正珍视的区块链重要属性是永久性。当公司破产或是维护该生态系统不再产生利益时,存储在服务器上的数字资产将在10年内不再存在。而以太坊上的NFT是永久的。
是的,到2372年人们仍能够下载并查阅你的加密猫。
但是一旦区块链的容量过高,存储所有这些数据就会变得更加困难,直到某时出现巨大风险,某些历史数据最终将……没人存储。
要量化这种风险很容易。以区块链的数据容量(MB/sec)为单位,乘以~30得到每年存储的数据量(TB)。当前的分片计划的数据容量约为1.3MB/秒,因此约为40TB/年。如果增加10倍,则为400TB/年。如果我们不仅希望可以访问数据,而且是以一种便捷的方式,我们还需要元数据(例如解压缩汇总交易),因此每年达到4PB,或十年后达到40PB。InternetArchive(互联网档案馆)使用50PB。所以这可以说是分片区块链的安全大小上限。
因此,看起来在这两个维度上,以太坊分片设计实际上已经非常接近合理的最大安全值。常数可以增加一点,但不能增加太多。
结语
尝试扩容区块链的方法有两种:基础的技术改进和简单地提升参数。首先,提升参数听起来很有吸引力:如果您是在餐纸上进行数学运算,这就很容易让自己相信消费级笔记本电脑每秒可以处理数千笔交易,不需要ZK-SNARK、rollups或分片。不幸的是,有很多微妙的理由可以解释为什么这种方法是有根本缺陷的。
运行区块链节点的计算机无法使用100%的CPU来验证区块链;他们需要很大的安全边际来抵抗意外的DoS攻击,他们需要备用容量来执行诸如在内存池中处理交易之类的任务,并且用户不希望在计算机上运行节点的时候无法同时用于任何其他应用。带宽也会受限:10MB/s的连接并不意味着每秒可以处理10MB的区块!也许每12秒才能处理1-5MB的块。存储也是一样,提高运行节点的硬件要求并且限制专门的节点运行者并不是解决方案。对于去中心化的区块链而言,普通用户能够运行节点并形成一种文化,即运行节点是一种普遍行为,这一点至关重要。
区块链的核心技术是什么?简单来说,区块链是一个提供了拜占庭容错、并保证了最终一致性的分布式数据库;从数据结构上看,它是基于时间序列的链式数据块结构;从节点拓扑上看,它所有的节点互为冗余备份;从操作上看,它提供了基于密码学的公私钥管理体系来管理账户。
或许以上概念过于抽象,我来举个例子,你就好理解了。
你可以想象有100台计算机分布在世界各地,这100台机器之间的网络是广域网,并且,这100台机器的拥有者互相不信任。
那么,我们采用什么样的算法(共识机制)才能够为它提供一个可信任的环境,并且使得:
节点之间的数据交换过程不可篡改,并且已生成的历史记录不可被篡改;
每个节点的数据会同步到最新数据,并且会验证最新数据的有效性;
基于少数服从多数的原则,整体节点维护的数据可以客观反映交换历史。
区块链就是为了解决上述问题而产生的技术方案。
二、区块链的核心技术组成
无论是公链还是联盟链,至少需要四个模块组成:P2P网络协议、分布式一致性算法(共识机制)、加密签名算法、账户与存储模型。
1、P2P网络协议
P2P网络协议是所有区块链的最底层模块,负责交易数据的网络传输和广播、节点发现和维护。
通常我们所用的都是比特币P2P网络协议模块,它遵循一定的交互原则。比如:初次连接到其他节点会被要求按照握手协议来确认状态,在握手之后开始请求Peer节点的地址数据以及区块数据。
这套P2P交互协议也具有自己的指令集合,指令体现在在消息头(MessageHeader)的命令(command)域中,这些命令为上层提供了节点发现、节点获取、区块头获取、区块获取等功能,这些功能都是非常底层、非常基础的功能。如果你想要深入了解,可以参考比特币开发者指南中的PeerDiscovery的章节。
2、分布式一致性算法
在经典分布式计算领域,我们有Raft和Paxos算法家族代表的非拜占庭容错算法,以及具有拜占庭容错特性的PBFT共识算法。
如果从技术演化的角度来看,我们可以得出一个图,其中,区块链技术把原来的分布式算法进行了经济学上的拓展。
在图中我们可以看到,计算机应用在最开始多为单点应用,高可用方便采用的是冷灾备,后来发展到异地多活,这些异地多活可能采用的是负载均衡和路由技术,随着分布式系统技术的发展,我们过渡到了Paxos和Raft为主的分布式系统。
而在区块链领域,多采用PoW工作量证明算法、PoS权益证明算法,以及DPoS代理权益证明算法,以上三种是业界主流的共识算法,这些算法与经典分布式一致性算法不同的是,它们融入了经济学博弈的概念,下面我分别简单介绍这三种共识算法。
PoW:通常是指在给定的约束下,求解一个特定难度的数学问题,谁解的速度快,谁就能获得记账权(出块)权利。这个求解过程往往会转换成计算问题,所以在比拼速度的情况下,也就变成了谁的计算方法更优,以及谁的设备性能更好。
PoS:这是一种股权证明机制,它的基本概念是你产生区块的难度应该与你在网络里所占的股权(所有权占比)成比例,它实现的核心思路是:使用你所锁定代币的币龄(CoinAge)以及一个小的工作量证明,去计算一个目标值,当满足目标值时,你将可能获取记账权。
DPoS:简单来理解就是将PoS共识算法中的记账者转换为指定节点数组成的小圈子,而不是所有人都可以参与记账。这个圈子可能是21个节点,也有可能是101个节点,这一点取决于设计,只有这个圈子中的节点才能获得记账权。这将会极大地提高系统的吞吐量,因为更少的节点也就意味着网络和节点的可控。
3、加密签名算法
在区块链领域,应用得最多的是哈希算法。哈希算法具有抗碰撞性、原像不可逆、难题友好性等特征。
其中,难题友好性正是众多PoW币种赖以存在的基础,在比特币中,SHA256算法被用作工作量证明的计算方法,也就是我们所说的挖矿算法。
而在莱特币身上,我们也会看到Scrypt算法,该算法与SHA256不同的是,需要大内存支持。而在其他一些币种身上,我们也能看到基于SHA3算法的挖矿算法。以太坊使用了Dagger-Hashimoto算法的改良版本,并命名为Ethash,这是一个IO难解性的算法。
当然,除了挖矿算法,我们还会使用到RIPEMD160算法,主要用于生成地址,众多的比特币衍生代码中,绝大部分都采用了比特币的地址设计。
除了地址,我们还会使用到最核心的,也是区块链Token系统的基石:公私钥密码算法。
在比特币大类的代码中,基本上使用的都是ECDSA。ECDSA是ECC与DSA的结合,整个签名过程与DSA类似,所不一样的是签名中采取的算法为ECC(椭圆曲线函数)。
从技术上看,我们先从生成私钥开始,其次从私钥生成公钥,最后从公钥生成地址,以上每一步都是不可逆过程,也就是说无法从地址推导出公钥,从公钥推导到私钥。
4、账户与交易模型
从一开始的定义我们知道,仅从技术角度可以认为区块链是一种分布式数据库,那么,多数区块链到底使用了什么类型的数
本站所有软件信息均由用户上传发布,版权归原著所有。如有侵权/违规内容,敬请来信告知邮箱:764327034@qq.com,我们将及时撤销! 转载请注明出处:https://www.ssyg068.com/biquanzx/16608.html
发表回复
评论列表(0条)