以太坊连载(16):公有链、联盟链、私有链及网络配置介绍
去中心化共识的基础是参与节点的点对点网络,节点维护并保证区块链网络的安全。参见挖矿。 EthStats.net是以太坊网络实时数据的仪表板,这个仪表板展示重要信息,诸如现在的区块,散表难度,gas价格和gas花费等。页面上显示的节点只是精选了网络上的实际节点。任何人都可以在EthStats仪表板上添加他们的节点。Github上的Eth-Netstats README描述了如何连接。 EtherNodes.com展示了节点数的当前和历史数据以及以太坊主网络和Morden测试网络上的其他信息。 当前实时网络上客户端实现分配 – EtherChain上的实时数据。 当今大多数以太坊项目都依靠以太坊作为公有链,公有链可以访问到更多用户,网络节点,货币和市场。然而通常有理由更偏好私有链或联盟链(在一群值得信任的参与者中)。例如,银行领域的很多公司都希望以太坊作为他们私有链的平台。 以下是博客发文《关于公有链和私有链》的摘录,它解释了三种区块链在许可方面的区别:
私有链/联盟链可能和公有链毫无联系,他们仍然通过投资以太坊软件开发,对以太坊整体生态系统有利。经过一段时间,这会转变成软件改善,知识共享和工作机会。 Geth会持续尝试在网络上连接到其他节点,直到有了端点为止。如果你在路由器上有可用的UPnP或者在面向因特网的服务器上运行以太坊,它也会接受其他节点的连接。 Geth通过发现协议找到对等端。在发现协议中,节点互相闲聊发现网络上的其他节点。最开始,geth会使用一系列辅助程序节点,这些辅助程序节点的端点记录在源代码中。 要检查客户端在交互控制台上连接了多少对等端点,net模块有两个属性可以提供信息,告诉你对等端点的数量以及你是否在监听的节点。
要检查geth使用的端口,发现你自己的enode URI 执行: 启动以太坊客户端时,会自动下载以太坊区块链。用于下载以太坊区块链的时间会根据客户端、客户端设置、连接速度和可用的端点数量变化。下面是更快获取以太坊区块链的一些选项。 如果你在用geth客户端,你可以做些什么来加速下载以太坊区块的时间。如果你用—fast标志来执行以太坊快速同步,不会保留过去的交易数据。 注意:你不能在执行所有或者部分正常的同步操作之后再使用这个标志,也就是说在用这个指令之前,不能下载以太坊区块链的任何部分。查看这个Ethereum Stack.Exchange answer了解更多。 下面是想要更快同步客户端时使用的一些标志。 —fast 这个标志使通过状态下载而不是下载整个区块数据来实现快速同步成为可能。这样也能大幅减少区块链尺寸。注意:—fast只在从头开始同步区块链,并且是出于安全原因第一次下载区块链时,才会运行。查看Reddit发文了解更多。 —cache=1024 分配到内部缓存的千兆内存(最少 16MB / 数据库)。默认是16MB,所以根据你电脑内存多少,增加到256, 512, 1024 (1GB)或者2048 (2GB)会带来不同。 —jitvm 这个标志可以激活JIT VM。 完整的控制台命令示例:
了解更多关于快速同步和区块链下载次数的讨论,查看这篇Reddit发文。 导出/导入区块链如果你已经同步了整个以太坊节点,可以从完全同步的节点中导出区块链数据并将其导入新节点。你可以在geth中用geth export filename指令导出所有节点,并用geth import filename将区块链导入节点,来实现这一目的。 静态节点,信任节点和启动节点 Geth支持一个叫静态节点的特征,如果你有特定的端点,你会一直想与静态节点连接。如果断开连接,静态节点会再次连接。你可以配置永久性静态节点,方法是将如下所说的放进 你也可以在运行期间通过Javascript使用admin.addPeer()加入静态节点。
连接的常见问题有时候可能无法连接,最常见的原因有:
不使用发现协议来启动geth,你可以用—nodiscover参数。你只会在运行测试节点或有固定节点的实验测试网络时才想要这样做。 |
2018-06-24
2018-11-20
2019-01-10
2019-01-10
2019-01-10
2019-11-14
2019-11-14
2019-11-14
2019-11-13