Releases: emercoin/emercoin
Emercoin 0.8.4
Release notes for Emercoin 0.8.4
This version contains several bugfixes and improvements:
- Bugfix: Accept SegWit spending in
mainnet
. - Bugfix: Activate command
name_scan_address
. - Bugfix: Activate check signatures in ENUMER for individual phone numbers.
- Improvement: Upgraded libevent version from 2.1.8 to 2.1.12.
- Improvement: Added parameter max-value-length to command
name_filter
. - Improvement: Added extra 2 servers to the STUN list.
Upgrade is required, if:
- You mining or minting EMCs.
- You running ENUMER resolver.
For all others, upgrade is highly recommended, but is not required.
Emercoin 0.8.3
This vesrion contains several bugfixes, and a lot of improvements. It provides a more "rich and clean" view in the GUI, and
increases performance, security and stability for the Emer node. Upgradeing is recommended, especially for server applications.
Bugfixes:
- Fix minig address for
getauxblock
to P2PK, to allow a miner to sign blocks. - Fix exception exit for
getcheckpoint
command. - Disallow adding transactions to mempool if marked by future time (no more than 2 hours of jitter allowed).
- Activate full check for all Hard Checkpoints (previous 0.8.X checked only the last one).
Improvements:
- Add output of RC4OK to entropy collection for SeedFast RNG.
- RC4OK performance tuning, increased by ~15%.
- Default
modcache=1
. This allows speculation caching of stake modifier for initial block download only. - Removed unnecessary code: coinbase UTXO for constake transaction.
- GUI: Show the label or the P2PK address for coinstake TX. Now the GUI wallet prints label or EMC addresses for minting transactions.
Note: if the input address is Segwit or P2SH, then the address, reflected in the minting TX list, is different from the original, because
minting can be performed for P2PK address only, and representation of such advanced addresses is changed to legacy P2PK. - GUI: From GUI tab
Minting
, removed unmintable UTXOs (Name, multisig, etc). - Minting optimization. Unmintable UTXOs (Name, multisig, etc) and not-matured UTXOs aren't included into minting candidates.
This saves CPU from useless attempts of "minting umnintable". - Optimized
GetRandInt()
function. - Added ban for peers, who provide incorrect historical blocks. These are 0.8.0, 0.8.1. Thus, if you are running one of these versions,
it is strictly recommended for you to upgrade your Emer node, otherwise it can be banned by your peers. - Full redesign of PoS header spam protection. Instead of old code, where "PoW cooling" concept is used,
this code utilizes the Token Bucket concept, which analyzes timestamps of headers and
peers activity, and quickly bans peers, who send headers too often. Therefore, this code does not need PoW blcks anymore, and the new version
has better stability, and can work on PoS only, if necessary, as same as testnet. Also, it does not need the config optionposprotect
.
Pleaase remove it, if you used it before.
Emercoin 0.8.2
This release contains 3 bugfixes, and significant performance improvement. Upgrading is highly recommended. Details are the following:
Bugfixes:
- Bug, reported by community member J.B. With this bug, Emer node does not accept into the mempool its own transaction, spent unconfirmed coins (i.e. previous transaction in mempool, too). This seems to suddenly turn balance to 0 after a minor payment, and no payments or name creations are allowed, until the ancestor TX is accepted into the blockchain. In this case, balance "returned back" to the wallet. This bug does not remove balance, but stops the user from creating a chain of transactions from a single UTXO, and makes the user nervous.
- Bug, initially existing in 0.8.0 (see those release notes). It seems there is a de-serialization error for receiving a historical block. Debugging shows, this is happening on the sender's side, i.e. 0.8.0 prepares incorrect historical block for peers. As a result, such node is disconnected from the peer's side.
- 3rd bug is result of performance increase. Node performs 1st check for end of initial block download after 15 minutes. It assumes - it is impossible to download the entire blockchain in time shorter than 15 minutes. If the blockchain downloads faster than this, the node will wait for the remaining interval. However, because of recent improvements, sometimes the blockchain will be downloaded faster than in 15 minutes. Best time from my tests: 11 minutes, with SSD drive and two peers on 1Gbit LAN. As a result, the node stuck in the phase "initial block download", when the actual download already ended. Now the initial interval decreased to 5 mins.
Improvements
Major improvement, allows for decreased blockchain download time from ~45 mins to ~20mins (entire blockchain from ~10 years). Changed original fast
random generator, inherited from Bitcoin, to my RC4OK. Scientific article about RC4OK is in process, I hope, it will be published in several months. I did not modify the strong
generator, to keep seed and privkeys secure.
Additional improvements related to wrappers around fast
RND generator. I optimized it to use only the necessary quantity of bytes, instead of using 32 bytes per each request like in the original RND generation from Bitcoin. It also reduces the blockchain download time from ~20mins to ~15mins.
UPDATE
Added Linux binaries for non-tagged build 0.8.2.1, where is fixed bug in the function getauxblock
. With this bug, a Pow-miner able to mine block, but unable send it to a peers. As result, block became orphan. Update is required for PoW miners only. Or, take the commit: f5f284e
Emercoin 0.8.1
This is a minor, but important change after 0.8.0 - The prefixes for the beech32 segwit address have changed.
New prefixes are:
- em - for mainnet (was bc)
- te - for testnet (was tb)
If you generated and use incorrect segwit addresses from 0.8.0 (bc/tb), please stop using them, and generate new addresses.
All your coins or names, held on bc/tb, are safe, and you can continue to hold them.
If you are using 0.8.0, you must upgrade to 0.8.1. If not, you may continue using your current version.
Emercoin 0.8.0 is released
There is lot of fundamental changes, and we recommend making a backup of your wallet.dat before upgrading,
and re-downloading the blockchain.
What is new:
Core (Wallet):
Emercoin has been ported to Bitcoin Core 0.19.1. This core contains a number improvements in terms of performance.
Together with our optimizations, this greatly improved efficiency of CPU usage, ~5x times.
Added dynamic balancing of download queues, which speeds up the blockchain download. Downloading a full blockchain with a good network takes less than an hour.
Added mechanism for sending your own transactions from mempool upon receiving a block that does not contain these transactions. This helps to propagate stuck transactions in the mempool faster.
Added the ability to sign messages with signmessage addresses beech32 (by the way, Bitcoin can't do that).
Increased detail information in JSON responses. So getinfo returns both difficulty, and name_show/name_history - shows the vout for the name.
SegWit:
If the 0.7.X releases introduced SetWit support in the kernel, then this version of SegWit is used by default, including generation an address for change coins, or a new address for payment or a name. If you need a legacy address of the old format (say, to receive coins from an old client or from an exchange), then when creating an address in the "Receive" menu, deselect the default checkbox item "Generate native segwit (Bech32) address".
If you need to create a name for a new legacy-address, then in the address bar for name "New address" enter the word "legacy".
That is, if there is an empty string, a new beech32 address will be created, and if the word is "legacy", then the address of the old format will be created.
Randpay (Probabilistic payment system):
The interface to the Randpay subsystem has been completely changed, it has become more high level and simpler.
Now there are new commands (old commands have been removed/replaced):
- randpay_mkchap - set a riddle from the server to the client
- randpay_mktx - create a transaction, the answer to the riddle puzzle
- randpay_accept - accept the answer, and get money if you're lucky.
Use help in console for these functions for options.
Using segwit beech32 address by default, still able to generate legacy addresses by specifying a flag when requested. See help randpay_mktx for details.
NVS (Name-Value Storage):
Prepared but not activated (activation will occur at 90% updating the network to a new version, including PoW miners) the ability to include multiple operations with names in one transaction. While working with names as before, only the default addresses have become beech32. But even after the activation of the new functionality the old name operations will continue to work. But now the command "decoderawtransaction" returns the names and information inside the UTXO, and not in the information about the transaction, as in the new format it will be possible to have multiple UTXOs with names in one transaction.
Added config parameter "-nametxoutamount", which allows you to add to a name-UTXO amount greater than the default subcent. This is useful when sending a name whose recipient does not have coins, and he will need to do name_update, for example in blockchain voting systems.
EmerDNS (Alternative domain system):
Added a filter to block DGA requests from botnets.
Added support for SRV, CAA, and TLSA records
STUN (Wallet IP detection mechanism):
Added periodic requests for external IP address via STUN. It may be useful when changing the network configuration, such as enabling or disabling a VPN.
Added config parameter "-stuntimio", indicating the initial interval between stun requests, which increases by ~1% after each request.
By default, its 15 min. Special values: 0 - requests once, during startup (as the current 0.7.X does), -1 - don't use STUN.
Updated the STUN server list to over 1000 entries.
ENUMER (for IP Telephony):
Added the ability to declare enum zones without checking signatures verifiers. Servicing only requests of type NAPTR, the rest are ignored.
Known bugs:
When downloading the blockchain at the time of the transition from the synchronization of headers to while downloading blocks, the deserialization of some messages fails. Currently, the client simply disconnects from that peer, and continues work. If the blockchain download is frozen, just restart the Emercoin client. This happens rarely, in the initial download only. Thus, bug is not significant, it has a low priority.
The BIP70 is not activated, since requires protobuf, which is not within dependency libraries.
Since BIP70 is just a option for purchase from sites through a URI like bitcoin://
which is disabled and rarely used even for Bitcoin, then for Emercoin it is also not relevant or important.
v0.7.12emc
EmerDNS:
- Added support for SRV and TLSA records.
- Added a DGA filter to combat botnets using emerDNS as a C2C tool.
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.
- Added the ability to create a separate ENUM zone without verifiers. For such a zone, the prefix “~” is introduced.
Core:
- Added changeaddress configuration parameter. 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.
- Added posprotect parameter, which is zero by default. The following explains why it is needed and how to use it.
- Increased the limit of consecutive PoS blocks from 6 days to 90.
v0.7.11emc
v0.7.11emc: Several important bugfixes. Upgrade is strictly recommended.
emerDNS:
- Improved logging
- Optimized ENUMER for NAPTR only
- Bugfix: Set "_" as a valid name symbol
STUN:
- Improved code, removed randfiller
- Refresh STUN server list
emerSSL:
- Fixed minor bug in GUI cert generator with 0 as Serial prefix
Core:
- Added entropy cache for speedup blockchain download
- Added hard chepoints
- Migrate to boost 1.76, qt5
Randpay:
- Fixed false mempool rejection 2nd RP TX
- Fixed false mainnet mempool rejection
- Added randpay-test.sh
Contrib:
- Added app icons and .desktop file for Linux systems
- Updated build tool for native build ARM, MacOS x86 and Mac M1
v0.7.10emc: Minor release. Upgrade is not required but recommended.
Minor release. Upgrade is not required, but recommended.
- CORE: Completely redesigned and rewritten PoS spam protection subsystem. Now it:
deletes fake spam headers in a memory
does not generate false bans for a correct peers. - CORE: Added PoS spam protection to the testnet.
- CORE: Disabled build and maintain address->name index, used for API command name_scan_address. It speeds up blockchain download. You can activate this feature by nameaddress=1 config option, if you are using the command name_scan_address.
- RPC: fixed bug in API method name_scan_address.
- NET: Increased STUN server list to 701 entries. This is used to figure out your external IP address.
- CORE: PoW mining code is removed from release version, because some websites and antiviruses identify it as malicious miner. You can still activate this code in a debug version if you need to test things out.
- CORE: It is now possible to enter safe mode by receiving an alert from dev team. You can disable this feature by disablesafemode=0 config option.
- emerDNS: fixed dots-bug in TXT fields. Returns EDNS0 extension for NOERR answers only.
- emerSSL/GUI: removed fake root certificate “EMCSSL” from a *.p12 package.
- NET: Disabled propagate info about banned peers in a peer advertising process.
v0.7.9emc: Security release: fixes another bug in PoS spam filter. Upgrade is no…
Security update. Upgrade is not required, but recommended. It is however necessary to upgrade to at least version 0.7.7 or newer.
v0.7.8emc
Security: Improved PoS spam filter and checkpoint sync function.