The next version of Emercoin wallet (node) has been released - 0.7.12.
What has been done compared to 0.7.11:
- emerDNS: Added support for SRV and TLSA records.
- emerDNS: Added a DGA filter to combat botnets using emerDNS as a C2C tool, see: https://bin.re/blog/the-dga-of-bazarbackdoor/
- ENUMER: Added exceptions from the previous filter for the ENUM subsystem. This does not reduce security, since the correctness of ENUM records is confirmed by the verifier.
- ENUMER: Added the ability to create a separate ENUM zone without verifiers. For such a zone, the prefix “~” is introduced.
- Core: Added configuration option changeaddress . If this parameter is specified, the change from transactions will be sent to this address, and not to the newly selected one from the keypool.
- Core: Added parameter posprotect, which is zero by default. Below will be an explanation for why it is needed and how to use it.
- Core: Increased the limit of consecutive PoS blocks from 6 days to 90.
A special mention should be made of the last two changes. It was they who demand that the new release is necessary to be updated by all users. All other changes were needed only by those who actively use EMER services in their business processes, and these people and organizations received or compiled an “actual build” without a dedicated release number.
The need for recent changes appeared in connection with the decision of the CoinEx crypto exchange, which announced the delisting of Emercoin. Immediately after the announcement of the delisting, the ViaBTC mining pool associated with this exchange stopped merged-mining of Emercoin. And this pool gave about 70% of the network hashrate. Other mining pools - f2pool and mining-dutch are unstable, and there was a threat of a complete cessation of mining. Despite the fact that PoW mining is an auxiliary mechanism for supporting the network, PoW blocks are used in Emercoin's triple consensus mechanism. PoW blocks are used to protect a node (network node) from memory overflow caused by downloading a long chain of PoS block headers from an attacking peer (functionality added in 0.7.8). With such an attack, the node runs out of memory, which can lead to its crash. However, neither coins nor names can be changed or stolen by this attack, and after restarting the node, the functioning is fully restored. That is, the maximum harm from the attack is the need to restart the node.
In the case of a complete cessation of mining in version 0.7.11, the network would exist for another 6 days exclusively on PoS, after which the nodes would begin to ban peers as suspicious, because too many PoS headers come from them.
Due to the fact that the exit from the business of all PoW miners turned into a real threat, modifications were made, which served as an incentive for the release of 0.7.12.
The most important change is the configuration parameter posprotect, by default equal to zero, to control the flood protection mode of PoS headers. The values for this parameter can be:
- 0 - Protection disabled. On the one hand, this opens up the possibility of attacking the node with a memory overflow. On the other hand, this is relevant only for sites where the Emer node is running in service mode, and disabling it will lead to a denial of service. For an ordinary user who is engaged in minting, or occasionally turns on the wallet, this vulnerability is not fundamental. But here the possibility of false bans due to the lack of PoW blocks is excluded.
- 1 - Protection is disabled for blockchain downloads only, but enabled for network connections. This could become useful if PoW blocks are missing for 3+ months in the future. Such a historical blockchain will have to be synchronized with options (0, 1).
- 2 - Protection is fully enabled, both for blockchain synchronization and network connections. That is, the behavior is the same as in 0.7.11.
Thus, after updating to 0.7.12 and you are a regular user, you have nothing to worry about. The mechanism for banning peers by PoS headers will be disabled for you, and you can not be afraid of false positives resulting from the absence of PoW blocks.
If you run a server and are afraid of the corresponding attack, then we recommend that you set the config parameter on the server
and not to be afraid of an attack.
The second change is an increase in the trust limit for PoS chains from 6 days to 90. In other words, even if the network works without PoW mining, peer bans will begin only after 90 days of this mode of operation. It is enough for you to preventively restart the node once every 1-2 months (if you have activated posprotect) to avoid false bans.
The following crontab line (for Linux/BSD) restarts the Emer node weekly on Sundays at 3:33 am:
33 3 * * 7 /bin/systemctl restart emercoind.service
We believe that the changes made allow us to flexibly maintain a balance between node security and network stability. And even a complete failure of the miners will not lead to a network shutdown, and the network will continue to work like other PoS cryptocurrencies, as has been happening for several years in testnet.
When upgrading to 0.7.12, we recommend deleting the file banlist.dat, since it may contain false bans created by the old version of the program.
You can download the compiled binaries for Window and Linux from Github: https://github.com/emercoin/emercoin/releases/tag/v0.7.12emc
Starting from version 0.7.11, we don't make builds for MacOS. For this system, use 0.7.10, restarting it periodically. Or manually cancel false bans in the menu item Help/Debug window/Peers.
git clone [email protected]:emercoin/emercoin.git
git checkout tags/v0.7.12emc
./configure --disable-dependency-tracking --disable-tests \ --disable-util-tx --disable-gui-tests --enable-bip70 \ --disable-hardening --disable-debug
make -j 4