首页
学习
活动
专区
工具
TVP
发布

比特币网络里、我是这样与我的邻居节点联系的!

各位网友们,大家好,欢迎点进小编的文章,我是一个专一的小编,专业爆料娱乐圈最新热点,来阅读小编的文章了解娱乐圈的家常百态吧,不仅可以在百忙之中放松心情,还可以get到喜欢的明星八卦,茶余饭后又多了与朋友交流的话题,如若喜欢小编的文章,记得点赞关注哦!这是小编每日工作的动力呢,有了你们喜欢的肯定,小编会再接再厉,奉上热文,祝广大网友顺心如意,好运连连!

我是三七,今天我们依旧接着上期继续共读《精通比特币》,今天的内容主要分为两部分:比特币交易和比特币网络。

比特币交易

比特币网络

一、比特币交易

系统中任何其他的部分都是为了确保比特币交易可以被生成、能在比特币网络中得以传播和通过验证,并最终添加到全球比特币交易总账簿(即比特币区块链)。

—1. 比特币交易的生命周期—

比特币交易的生命周期包括:

1)交易的产生

2)被签名加密

3)全网进行广播

4)全网节点验证并被接收

5)挖矿节点验证并添加到区块中6)被足够多的后续区块确认有效

—2. 交易在全网传播 —

形成一个巨大的网状结构。每个节点收到交易之后都会进行验证,如果有效就传播到其他节点,如果无效就拒绝并返回。一笔有效的交易在几秒钟能就会传遍全网。

比特币网络有以下特点:

所有节点的地位都是同等的;

能够抵御攻击;

增加可靠性。

—3. 什么是UTXO? —

翻译过来就是“未花费的交易输出”,是一种用来快速计算你有多少数字资产余额的设计。

也没有余额,只有分散到区块链里的UTXO。

专治数学不好

—4. 比特币交易费 —

这是为了在网络安全方面给比特币矿工一种补偿。交易费主要是交易的尺寸,用千字节来计算,而不是比特币的价值。总的来说,交易费基于市场设置,生效于比特币网络。

交易费的多少会影响处理的优先级,有足够费用的交易会更早被包含在下一个挖出的区块中,也就更早得到确认和验证。交易费大多数情况下都是由钱包程序替你自动计算出来的。

二、比特币网络

—1. P2P网络架构—

不知道你是不是想到了金融界的P2P贷款和放贷。P2P的英文全称是:peer to peer。翻译过来就是:点对点。所以任何点对点的关系,都可以使用P2P这个概念。

就是大家都熟知的P2P网络架构。当然除了P2P网络外,比特币网络中也包含了其他协议。例如Stratum协议就被应用于挖矿,以及轻量级或移动端比特币钱包之中。

每个节点共同提供网络服务,不存在任何“特殊”节点。重点在于,每个节点都是完全平等的。每个节点对外提供服务,同时使用其他节点提供的服务。如果说人人生而平等是一件需要努力的事情,比特币网络上的节点,天生就是点点生而平等而不需要努力的。

可以清晰的表示每台计算机节点的对等关系:

—2. 节点类型及分工—

但是他们的功能确实有差异的,每种节点拥有不同的分工。

一个全节点包括四个功能:即网络路由节点、完整区块链、矿工、钱包组成。

同时也可能包含其他功能。每个节点都参与验证并传播交易及区块信息,发现并维持与对等网络的连接。”

其实就是指,每个节点都会主动连接各自的令居节点,从而为整个网络服务。四个功能任意组合,就会出现不同的节点。也就是说,很多节点并不是全节点,比如我们常说的钱包,就不具备全节点的所有功能。

—3. 扩展比特币网络—

本身是遵守比特币协议的各个节点的组合。但是比特币协议本身有些功能是无法实现的,比如,挖矿和钱包功能。需要实现功能的话就需要去扩展比特币的网络协议了。比如:许多连接到比特币网络的大型公司运行着基于Bitcoin核心客户端的全节点客户端,它们具有区块链的完整拷贝及网络节点,但不具备挖矿及钱包功能。

会在原有的比特币网络协议上,增加一些用于增加上述功能的特殊协议。扩展之后的比特币网络,它包括了多种类型的节点、网关服务器、边缘路由器、钱包客户端以及它们相互连接所需的各类协议。这些扩展协议的存在,使得整个比特币网络拥有了更多的功能。

—4. 网络发现—

为了可以和整个区块链网络里面的节点进行协作,这个节点就必须主动去和已经存在的节点产生联系。这样才能加入到比特币网络的大家庭里面。这个新节点与已有节点建立联系的过程,称作:网络发现。

我们可以类比成:搬家之后找邻居(家庭住址就是IP地址)。

新节点到底是如何找到自己的对应节点并产生联系的。

新节点刚开始找邻居的时候,是很难一下子就找到自己的对等节点的。为了提高网络发现的效率,在整个网络里面存在一类特殊的节点,这类节点称作:种子节点。如果把新节点找到对应节点的过程是搬家找邻居,那么种子节点就是你要去的那个小区的居委会大妈。作为居委会大妈的种子节点会努力的帮你寻找可以与你对应的邻居节点。当你找到了对应的邻居节点的时候,大妈就不会管你了。

他会主动把你的地址信息,分享给他的邻居节点。你邻居的邻居,也会是一个好心人,会主动帮你把你的地址信息再次传递给他的邻居。这样的过程循环往复。最终整个小区的人都会知道你的地址信息,找到你就会很容易。

你还可以向你的邻居节点发送请求,获取你邻居所知道的其他邻居节点的地址信息。这样一来,作为新节点的你,全网的节点都会知道你的地址,你也知道了全网每个节点的地址。到这里,你完全可以找到与你对等的节点了,完成网络发现的目标。

那就是:节点和整个比特币网络失去联系,也就是离开了网络。比如,你做一段时间旷工,突然不想做了,也就是离开了整个比特币网络。每个节点都有随时加入和离开网络的自由,就好像你在一个小区居住,只要你是想搬家,随时都是可以搬家的。在这种情况下,节点之间的通讯地址通常是不可靠。所以,比特币网络发明自己的一套机制来处理这种情况。

找到新的邻居节点的时候主动提供帮助。

注意:上面的网络发现其实就是节点之间主动帮忙的结果。

接下来我们看看节点是怎么知道自己的邻居节点是否搬家的。

在节点与节点之间是需要定期发送信息来维持连接的。和人类似,如果长期不给一个朋友打电话或者网络聊天,你会觉得这个朋友已经离开了你的朋友圈。节点之间,也是如此。如果两个节点之间持续90分钟,没有发送消息了,节点的任何一方都可以认定自己的邻居节点已经从网络里面断开了,这个时候,就可以去寻找新的邻居节点了。这样的机制,保证了整个比特币网络可以自己动态调整节点规模的增减。

—5. SPV简易支付验证节点—

只有全节点拥有完整的全网区块链的拷贝,也只有全节点具备独立验证的能力。很多节点,是没有全节点独立验证的能力。所以会采用一种叫做 SPV的验证方式。

翻译过来就是“简单支付验证。”是一种相对简单的、用来验证支付的方法。

让他在完整账本里帮你找到这条交易所在的区块即可验证是否有这笔交易。

仅仅保存区块头。这样下载任务就比下载全部的区块链账本轻松很多,要知道比特币每个区块的容量是1Mb,区块头的大小只有80Kb。

是通过参考交易在区块链的深度,而不是高度,来验证交易的。简单来说,检查一个区块的上面是否叠加了6个区块。如果有,证明这个交易是确实发生的。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181117A0Z29600?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券