Home > 应用 > 美国的火币Coinbase如何构建区块链基础设施
应用投研

美国的火币Coinbase如何构建区块链基础设施

导读:2019年以来,世界范围内都在关注加密货币,加密货币变化一日千里。这种情况下,Coinbase怎么构建自己的区块链基础设施,怎么快速拥抱变化,这是很多技术人都关心的话题。本文对这些问题作出自己的解答。

Coinbase有一些很独特的安全性和基础架构的需求。比如每台服务器都不是长期运行的(<30天)并且是不可变的。大多数应用程序的部署过程非常简单:在负载均衡器后面蓝绿部署12因子应用程序。当考虑区块链节点时,蓝绿部署的过程变得更具挑战性。

区块链节点用于检测,验证并转发网络中的状态更新,换而言之,这是各种加密货币网络的耳目。也就是说,当有人通过区块链向Coinbase转入加密货币时,通过区块链节点来监听该交易,而当有人从Coinbase向其他地址转出加密货币时,则通过区块链节点广播该交易。因此,有效管理区块链节点对于我们的核心业务运营至关重要。

从高维度来看,区块链部署剖析如下。

让我们从启动一个EC2实例开始。一旦实例启动并准备就绪,我们就可以运行区块链节点的二进制文件。

美国的火币Coinbase如何构建区块链基础设施

节点启动后,会连接到网络上的其他节点

美国的火币Coinbase如何构建区块链基础设施

这时候会通过网络同步其他节点的数据。

美国的火币Coinbase如何构建区块链基础设施

传输第一个块,新节点对其进行验证。

美国的火币Coinbase如何构建区块链基础设施

更多块被发送到新节点。

美国的火币Coinbase如何构建区块链基础设施

所有块均已传输完成,验证并完全同步。

美国的火币Coinbase如何构建区块链基础设施

全节点通常会在磁盘上维护区块链的所有数据。 通常需要同步数百GB的数据。有的时候,完成全量数据同步可能需要数周。 考虑到加密货币生态系统的发展步伐,基础架构的安全性和可靠性,以及节点升级的偶发性,每次部署时从网络完全同步对于我们而言,并不是安全可行的解决方案。 因此我们设计了一个新的名为Snapchain的区块链节点备份和部署系统。

美国的火币Coinbase如何构建区块链基础设施

Snapchain区分两种类型的区块链节点,其中快照节点完全同步链并以EBS卷的形式产生副本,而长寿命节点则使用这些EBS卷就可以在几分钟内完成部署。 Snapchain使我们能够灵活地快速快速部署区块链节点,以响应版本升级,网络事件或针对新型配置进行开发。

由于Snapchain部署在AWS上,因此我们能够通过NLB(负载均衡器)进行扩容以满足工程师的需求。使用NLB可以带来静态IP,动态扩容,蓝色/绿色部署等特性。

区块链节点进行版本升级(显示的示例:1.0.0至1.1.0)的工作方式如下。

区块链节点位于NLB后面,节点内有区块链的二进制可执行文件,用于提供API和同步数据。

美国的火币Coinbase如何构建区块链基础设施

实际上,将节点放置在多个可用区(AZ)中,可能存在多个用于冗余节点。

美国的火币Coinbase如何构建区块链基础设施

启动新实例并遵循先前描述的流程。

美国的火币Coinbase如何构建区块链基础设施

一旦新实例准备就绪且运行状况良好,就会被添加到NLB。

美国的火币Coinbase如何构建区块链基础设施

一旦检查通过,就可以通过NLB切换转换新版本了。

美国的火币Coinbase如何构建区块链基础设施

最终NLB之后的区块链节点完成升级。

美国的火币Coinbase如何构建区块链基础设施

此外,Snapchain是与区块链无关的基础架构。 主要设计目标之一是最大程度地减少关于于区块链的代码和基础设施的数量。 这样我们就可以更快地添加新的区块链节点了。

美国的火币Coinbase如何构建区块链基础设施

原文地址https://blog.coinbase.com/blockchain-infrastructure-at-coinbase-366c09dbcef4

本文由方圆翻译,

http://xzh.i3geek.com

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据