区块链产业

中国区块链新闻网讯,无许可跨链燃烧协议BlackHoleProtocol获得GateLabs、MXCLabs、红链资本、心跳加速...
区块链投资

中国区块链新闻网讯,社交网络平台BitClout创始人Diamondhands在发给Coindesk的邮件中披露了一份BitClou...
Blockstream联合创始人Pieter Wuille:比特币节点之间同步数据即将变得更容易
发布时间:2018/12/20 数字货币 浏览:503
由Blockstream联合创始人Pieter Wuille,比特币核心贡献者和Blockstream联合创始人Gregory Maxwell以及Blockstream软件工程师Gleb Naumenko带头,开源计划旨在实现每个完整节点的mempool之间的集合协调。
简而言之,设置协调是试图找出存储在不同计算机上的两个集之间的差异,同时最大限度地减少需要在它们之间交换多少数据的问题。特别是,它试图在发送的数据少于整套数据时这样做,“Wuille告诉比特币杂志
对于比特币,这意味着辨别节点之间事务数据的差异。麦克斯韦比较了将手机的联系人列表与拥有许多相同联系人的其他人同步的过程。
“你可以把你的整个清单发给他们,但它不适合明信片,在任何情况下都会非常浪费,因为他们已经知道了大部分的联系人……事实上,有可能将你的整套联系人传达给他们通过发送尽可能多的信息作为你的名单之间的差异大小,甚至不知道实际差异是什么,“麦克斯韦告诉比特币杂志。
简而言之,通过最小化每个节点相互传输的数据量,设置协调将减少在比特币网络上运行完整节点所需的带宽。这将有效地允许节点更有效地同步其mempool中的数据。
打破集合和解
minisketch想要修改的问题不是区块链特定的。
设置协调是任何分布式系统都在努力解决的持续挫败感。写得很大,它只是意味着分布式网络上的两个或更多方拥有不同的数据集,为了协调这一点,他们必须弄清楚他们丢失了哪些数据 – 以及他们拥有哪些数据党缺乏。
对于比特币,这些数据是交易。这些事务从节点传递到节点,直到矿工接收它们以包含在新块中。
问题是事务的顺序可能会有所不同,从mempool到mempool(列出要包含在新块中的传入事务的队列)。这意味着mempools和新中继的块之间的事务顺序可能存在(并且通常是)差异。
“比特币节点在彼此之间中继交易时会出现问题。任何给定节点将与其他任何一个节点具有大多数相同的事务 – 从其他链接接收,但不完全相同。今天,节点浪费了大量的带宽,只需确定谁需要发送什么[数据],“麦克斯韦说。
Minisketch如何弥补差距
PinSketch算法的实现,minisketch构造用于构造集合草图的数据库(即,对于该用例,交易数据集)。然后,节点和矿工可以使用这些集进行紧凑集对帐。
简而言之,该解决方案将允许节点运营商比较交易数据的注释。它将允许他们绘制(创建)事务集(列表),并且程序将交叉检查这些集以查看哪些数据发生在一个集合中而不是两个集合中。然而,使用minisketch,节点只需要知道它们的事务集之间的差异来绘制整个集合,而不是花费时间和精力将所有这些数据透露给彼此。
正如Wuille解释的那样,它在实践中看起来像这样:
“如果我们将它简化为一个单一的差异,很容易看出它是如何工作的:
假设我有{3,5,7,11}集,你有{3,5,7,9,11}集,所以区别为{9}。
我们都计算了元素的总和,所以得到3 + 5 + 7 + 11 = 26,得到3 + 5 + 7 + 9 + 11 = 35。
我把我的钱26发给你,你从你的总和中减去它;差异是9。
“这有效,但仅限于找到一个区别。 Minisketch通过发送各种类型的数据“总和”来概括这一点。结果是,有N个不同的总和,你可以找到N个差异…只要这些集之间的差异数量不超过发送的“总和”数量,minisketch将始终成功找到所有差异。“
如果成功实施,则此集合协调可以使节点之间的事务中继更有效。麦克斯韦说,随着比特币基础设施的其他工作中的改进,这可以大大减少每个节点的广播负担。
“我做了一次测量,发现事务中继约占节点带宽使用率的87%。这是在紧凑块之前,因此现在数量可能更大。我们的仿真结果表明,通过包括minisketch在内的改进,我们可以将继电器开销减少40倍。“