比特大陆蚂蚁矿机S7

Gavin : 区块头优先挖矿(head first mining)将杜绝DoS攻击

洒脱喜 发布在 技术指南 5 6556

gavinandresen

实行“区块头优先挖矿”(head first mining):在网络上尽可能快地传播新的80字节的区块头,一旦矿工们得悉区块头,就可以给他们机会去开始挖取一个空块。

只有有效的,连接到最长链的工作量证明区块头才会被中继,所以拒绝服务攻击将是不可行的。

一旦整个区块被接受和验证时,矿工们会尽快切换至挖取常规块。

这里会有一个硬编码的30秒逾时段;如果整个数据块得到验证并传播到网络的时间超过了30秒,或者说它没有被发送出去,矿工们会切换回最后一个完全验证的区块,来挖取非空块。

 

细节:

 

新的getblocktemplate行为:在接受一个新区块的‘区块头’信息与接受及验证这个‘区块’信息之间,getblocktemplate返回一个空(只有coinbase交易)区块模版。当一个新的最佳区块头(best-header)被接受时,并且当区块被完全验证时, 长getblocktemplate 连接就会中断。

新的命令行选项,-blockheadernotify。类似 -blocknotify,区别是当一个新的最多工作区块头(most-work-header)被接受时才会进行通知。

新的P2P消息,‘无效块’( ‘invalidblock’)。类似‘区块’信息,区别是当一个无效区块的有效工作量证明被接受时,这些信息会发送到对等节点, 告诉它们应该停止在这个区块头上进行挖矿。

只有遵循 BIP130 ‘sendheaders’协议的对等节点才会立即中继区块头,也只有它们会接受到‘无效块’信息。轻客户端(SPV)不会有‘sendheaders’,因此它们应该不会受到影响。而无法理解这些‘无效块’信息的旧版客户端就会忽略它。

请在github上审查代码并讨论测试结果。辩论区块头优先挖矿是否有利于比特币网络,是否应该在bitcoin-classic软件中实施,你可以在slack channel或者#bitcoin-dev IRC channel进行讨论。

 

原文:https://github.com/bitcoinclassic/bitcoinclassic/pull/152
作者:gavin andresen
译者:洒脱喜
稿源(译):巴比特资讯( http://www.8btc.com/head-first-mining)

版权声明: by nc" sa 作者保留权利。文章为作者独立观点,不代表巴比特立场。
发文时比特币标准价格 买价:¥2745.51 卖价:¥2745.22

评论:5

您需要登录后才可以回复 登录|注册
    KCBitcoin
    KCBitcoin 269 天前

    Gavin: 如果我是矿工的话,运行此代码可降低孤块率0.8-1%。

    +1
    +1
    我要点评
    欣怡Leafly
    欣怡Leafly 269 天前

    回覆@梦猫猫-蓝点:我的妈呀,我也是被吓过来的。。人都走了三年了,盗号狗胆子也是忒肥了点儿。。

    +1
    +1
    我要点评
    KCBitcoin
    KCBitcoin 269 天前

    Gavin: So if I was a miner, using this code should drop my orphan rate by about 0.8 to 1 percent.

    +1
    +1
    我要点评
    pandajing117
    pandajing117 269 天前

    Gavin好样的,狠狠的回击那些拒绝扩容的DDOS攻击

    +1
    +1
    我要点评
    巴比特资讯
    巴比特资讯 269 天前

    【Gavin : 区块头优先挖矿(head first mining)将杜绝DoS攻击】实行“区块头优先挖矿”(head first mining):在网络上尽可能快地传播新的80字节的区块头,一旦矿工们得悉区块头,就可以给他们机会去开始挖取一个空块。http://t.cn/RGrfnxL

    +1
    +1
    我要点评