The developer and specialist in Bitcoin, Jameson Lopp , published the results on a series of tests that he made to different clients of a complete Bitcoin node and the time that each one takes to synchronize with the chain of blocks of this cryptocurrency, determining that Bitcoin Core is the client to synchronize more quickly among those evaluated. The developer also examined implementations of full nodes of other cryptocurrencies.
In total, Lopp tested 5 versions of Bitcoin's full node: Bitcoin Core, Libbitcoin Node, Bcoin, Parity Bitcoin and BTCD; in addition to three tests in altcoins nodes, specifically with Parity and Geth, for Ethereum and monerod for Monero. According to his report, published this December 1, he considered testing a Ripple node but ruled out the possibility due to the amount of disk space consumed by the data in this block chain.
According to these tests , the best performance client in terms of synchronization time is Bitcoin Core, with a time of 5 hours and 11 minutes , almost four times more efficient than its closest competitor, Libbitcoin Node, with a synchronization time of 20 hours and 24 minutes.
However, Lopp said that it seems that the developers have not made an effort to create versions that take better advantage of high-power machines for network synchronization, as in their case. "In general, my opinion is that not many implementations have put a lot of effort into optimizing their code to take advantage of the higher level machines to be more greedy with the use of resources," he said.
Lopp pointed out that in spite of having executed the clients in the same hardware equipment, to maintain the stable performance of the synchronization, other factors that affect the performance of this activity come into play . So he mentioned that there is no way to know if his internet service was constant at all times during synchronization; that some clients may have users with higher bandwidth than other clients; that not all clients use caching (quick retrieval of frequently used information); It also mentions the differences in the indexing of information and the file formats, which can influence the ordering of data.
But the developer not only tested Bitcoin nodes , but also tested client versions of other cryptocurrencies such as Ethereum or Monero. For all these exams, Lopp used a PC Core i7 8700 , 3.2GHz 6 core CPU, 32 GB DDR4-2666 RAM, with a Samsung 960 EVO 1TB M.2 SSD processor.
The results? According to Lopp, the speed at which data is added to the Ethereum blockchain significantly exceeds the speed with which the client implementations of Parity and Geth for Ethereum are being improved.
The synchronization of the Parity node was delayed more than 3 days , while the Geth version can not be completed, and also, "seems to have a consensus error", which seems to have gone unnoticed because very few people try to execute it in validation mode complete
As for Monero , Lopp tested the monerod client, which he had to execute twice in order to configure it correctly, even in spite of having the technical knowledge. In this case, the synchronization took 20 hours and 16 minutes, highlighting that it seems that a "better network logic" could produce an acceleration of almost 1,000% percent.
In addition, Lopp stressed that this full-node implementation has an interactive mode that can be used to change the configuration of the node while it is running, ensuring that it is a "really useful" element for these performance tests.
The developer emphasized that although the data of the chains will increase over time, as well as the information needed to run a complete node, developers should strive to ensure that these resources are available and that they are simple to manage, ensuring that this is a great challenge for greater adoption.
"The difficult part is to ensure that these resource requirements do not exceed advances in technology. If they do, then increasingly large swaths of the population will be deprived of the opportunity for self-sovereignty in these systems, "he said.