我在AWS上运行一个geth节点,它是完全同步的,但是查看日志和挖掘的块,我发现导入一个新块需要很长时间。
例如:
INFO [01-14|18:15:34.365] Imported new chain segment blocks=1 txs=188 mgas=9.978 elapsed=2.180s mgasps=4.576 number=9280706 hash=c7050a…29c316 dirty=662.81MiBBlock Number: 9280706
Timestamp: Jan-14-2020 06:14:57 PM +UTC导入这个块需要超过30秒。几乎所有街区都会发生这种情况。
这是网络或服务器大小的问题吗?我使用的是AWS服务器(500 8GB的SSD,8GB的RAM,双核)。CPU使用率从未超过85%。
这是正常的吗?
另外,有人知道我在哪里能找到日志的每一个术语的含义吗?
事先非常感谢!
发布于 2020-01-15 09:02:08
这是正常的吗?
不知道目前的正常同步率是什么与硬件设置,但它不会令我惊讶,特别是与这样的块大小。(最近运行同步的人可以添加更多细节或添加更正。)如果您查看以太扫描上的块9280706,您将看到它包含188个事务、103个内部事务,并且已满99.88%。
当您导入一个块时,您还导入了与该块中的事务相关的所有状态更改。将这些状态更改应用到您到目前为止已经同步的总体状态是所花费的大部分时间。
来自彼得,主要的Geth开发人员之一:
“要真正拥有同步节点,您需要下载所有帐户数据以及所有微小的密码证明,以验证网络中没有人试图欺骗您。这本身已经是一个疯狂的数据项数量。它变得更加混乱的部分是这些数据不断的变形:在每一个块(15s)中,大约有1000个节点被从这个trie中删除,大约有2000个新的节点被添加进来。这意味着您的节点需要同步每秒更改200次的数据集。最糟糕的是,当你在同步的时候,网络在前进,你开始下载的状态可能会在你下载的时候消失,.“
另外,有人知道我在哪里能找到日志的每一个术语的含义吗?
blocks -导入的块数。txs -导入的事务数。(我们在这里导入一个完整的块;9280706包含188个事务。)mgas -百万气体。这188笔交易使用9,978,0779,978,077气体。elapsed -下载该块所需的时间。这不包括应用状态更改所需的时间,您已经看到这需要花费更长的时间。mgasps -百万气体每秒。我们在2.180秒内输入了9.978兆赫的工作。number -块号.hash -块头的散列。dirty --这不那么直观。它是与导入的数据相关联的状态变化(磁盘I/O)数量的度量。因此,导入这个块将导致重写662 MB的数据。https://ethereum.stackexchange.com/questions/78971
复制相似问题