广播通信
一笔交易需要传递至比特币网络,才能被传播,也才能加入区块链中。广播即节点间通信,传递交易信息的过程。发起节点发送InvPacket,接受节点返回GetDataPacket,发送节点发出交易数据TXPacket。
当你发起一笔比特币转账时,你的个人节点或中心化节点(SPV钱包、交易所)首先验证交易有效性,接着需要将交易信息广播至比特币全网,具体会先向它周围的三到四个相邻的节点传播,逐渐远播。
确认广播
挖矿节点收到这笔交易后会进入本地内存池进行验证。如果验证成功,则将其放入“未确认交易池”(Unconfirm Transaction),等待被打包;如果验证失败,则该交易会被标记为“无效交易”(InvalidTransaction),不会被打包。打包后6次广播打包信息。被打包的未确认交易经过工作量证明后得到确认。挖出这个区块的节点向全网广播新区块哈希,其他节点验证后进行同步。
未确认交易
有时候交易不能被及时打包,是因为“未确认交易池”中的交易笔数太多,而每个区块能记录的交易笔数有限,这时候就会造成区块拥堵。
广播渠道
广播可以通过各种形式传播,比如Wi-Fi,蓝牙,NFC,ChirP,条形码或者复制粘贴至一个网页表格。极端情况下,可以通过封包无线电、卫星或短波、扩频或跳频以避免被侦测或阻塞通信的方式进行传输。一笔比特币交易甚至可被编为文字信息中的表情符号并被发表到在线论坛,或被发送成一条短信或一条Skype聊天信息。
广播故障
发起交易并不需要接入互联网,可以先发起交易,广播时再接入互联网。
广播失败可以选择重新广播。长时间未确认交易,如果是已广播,可选择矿池加速,否则超时后会被内存池自动清除。
广播效率
区块链基于P2P网络,其网络通信的效率对性能影响很大。区块链网络为了解决拜赞庭将军问题,对网络通信故障必须设定合理的容错范围,来平衡网络效率和安全性、可用性。
END
关 注 币 海
币海 这里不江湖
微信号:DIGIBN
领取专属 10元无门槛券
私享最新 技术干货