Release v1.1.6 is out 🚀
Release description:
Binary Update v1.1.6
What's new:
#2196 - Add VM return message into the REST API response.
#2187 - Added protection against delegation to undeployed smart contract in the genesis process.
#2188 - Added postfix for namespace deployments so we can differentiate them from the different repository.
#2189 - Updated README.md file, improved the p2p communication by using the latest libp2p libraries.
#2201 - Integrated the output directory flag for filegen config pre-processing.
#2205 - Updated REST API responses to be used by the integrating exchanges.
#2204 - Added new integration tests for various transaction scenarios.
#2202 - Included new DNS contract with enabled register function, plus new view functions.
#2203 - Added a REST API endpoint for getting the username for a given address.
#2197 - Added extra tests for the delegation contract.
#2214 - Added full integration test with relayed transactions and attestation contract.
#2217 - Exchanges features: return notarized blocks (not only their hashes), rename some API response fields for full history nodes, full history bugfix (get meta block by hash was not working)
#2223 - Added two optional parameters to REST API endpoint vm-values
(caller and value) and extended the functionality in order to be able to include the the callerAddr and callValue inside the smart contract query service.
#2219 - Added end of epoch system smart contract processing. Features added in the system smart contract: jailing the low rating nodes, removing them from staking list, adding users from the waiting list to active.
#2199 - Implemented epoch notifier for the soft fork process and changed some options from bool to uint32 representing the epoch number when they will become active.
#2229 - Logging system cleanup: removed stats.txt file, data is being written in log files directly, added the possibility to use multiple log files instead of just one, added Nonce field in heartbeat structure.
#2218 - Implemented transaction execution simulator. It will work via the REST API endpoint /transaction/simulate
which receives the same request as the /transaction/send
route.
#2222 - Added smart contract results that are generated by relayed transactions in elastic search indexer.
#2215 - Made software version checks dependent upon the current epoch so the nodes will process everything in a consistent way.
#2200 - Implemented a system that will prevent the return of gas provided in excess on a smart contract call transaction.
#2231 - Standardized the log options between the elrond-go node, logviewer and termui, if log-level
, log-correlation
and log-logger-name
flags are not provided, the node won't change its current logging profile.
#2226 - Added hyperblock coordinates in GetTxByHash()
function.
#2235 - Added receipts hash storer which holds cumulative receipt hash as a key and all the receipts hashes list marshalized as a value, for each committed block.
#2237 - Exchanges integration: refactor computation of transaction status, added more tests, include invalid transactions in response of /block?withTxs
, added new field Type in MiniblockMetadata
, also return miniblock hash in transaction response, where possible.
#2242 - Added in receipts storer as a value a marshalized batch which contains all the marshalized receipts in clear and not only their hashes.
#2094 - Added a new tool that is able to parse the provided DB structure and redo the elastic search indexing. Within this PR a new component was added that can replay the chain from genesis, on an ascending order based on nonce.
#2239 - Implemented import mechanism ensuring the node can fully reprocess a provided DB structure: added a new resolvers suite used when a node needs to sync from epoch 0 from DB, made the network messenger capable of sending self-direct messages.
#2251 - Renamed fullHistory
to db lookup extensions
.
#2233 - Added a lock for a specified amount of gas before executing a built-in function, in case the call is asynchronous. The locked gas will be restored after execution, or in case of error. The intention is to keep some gas aside, in order to have a minimum amount left for the async callback.
#2241 - Added new field to be indexed in elastic search. This helps the front end using the search_after
parameter to scroll deeper than 10k elements.
#2212 - Updated termui interface: added a gouge with epoch info (shows how many rounds passed in current epoch and time remained from current epoch), added a gouge with epoch traffic (show an estimation of how many bytes was send/received in current epoch).
#2250 - Adapted prerequisites.sh for Arch based distributions.
#2248 - Added the gracefully close channel in storage header resolver so the import process can safely shutdown the node when completed.
#2256 - Handled transactions towards metachain in DbLookupExtensions.
#2261 - Added node watcher to testnet scripts so the nodes can now be shuffle out from one shard to another.
#2266 - Added DNS integration tests.
#2269 - Optimized db lookup extensions while sync & fast-reply-database.
#2213 - Added unit tests for the storer to elastic tool.
#2280 - Improved block tracker computation time, when received headers are behind final or if registered handlers lists which should be notified on new headers received are empty.
#2285 - Implemented signaling of double key usage in the network.
#2287 - Created a wrapped structure which will be returned when calling a vm-values
endpoint. Now it will display addresses in bech32 format when needed and added custom json tags (with lowercase).
#2230 - Added unJail
with option: if the node was jailed for the first time, it will get in to the top of the waiting list.
#2292 - Added the /log
route inside the seednode. If enabled, then the logs can be fetched via the logviewer app.
#2288 - Added unit tests in the core/indexer
package.
#2301 - Implemented a mechanism which limits the number of the same consensus message type which could be received/accepted in one round from the same public key.
#2310 - Sync tracker pool with headers pool LRU cacher when missing headers from tracker are requested (in this situation a delete will be done in headers pool, just to be sure that the notifiy event will be called for the requested/received header, even if in some edge case situations the requested header exists only in headers pool but not in tracker pool).
#2316 - Implemented a mechanism which adds into tracker pool the needed headers which are not found there but they exist in the headers pool.
#2286 - Added more Auction smart contract unit tests, changed auctionSC stake method to not allow partial registration of stakes, either all BLSKeys can be registered or none, changed maxStakePerNode to use big.Int.bytes, added checks for setConfig, minStake, minStep.
#2315 - Changed the docker image for the keygenerator
functionality.
#2299 - Added unit tests - jailed nodes swapped in a controller manner.
#2305 - Added RegisterNonce value for waiting view function.
#2328 - Implemented new functionality for the ESDT.
#2329 - Added system smart contracts enable epoch.
#2332 - Further improved new built in functions for the ESDT.
#2340 - Implemented calling a smart contract function after ESDT process is done. Implemented sending back the ESDT tokens if the transaction failed cross shard.
#2304 - Added the ability to index only the given indexes. Before this, only for transactions there was the option to index or not. Now, all indexes can be configured. Added an accounts
index that will contain data about used accounts (from genesis and from transactions).
#2342 - Added a view function for the auction system smart contract that returns (blsKey - status) pairs.
#2339 - Added integration test that proves that a staking transaction with real BLS signature will work. Test data will be provided from the frontend testing process.
#2338 - Improved the import-db process: added a delay before the import process will stop the node in order to have the time to commit received data, added ThresholdMinConnectedPeers as a config in order to be overridden by the import db process, made the import-db process automatically generate a new BLS key in order to avoid accidental usage of a validator BLS key that migh trigger the node shuffle-out.
#2327 - Acceptance of a temporary lower threshold for number of signatures needed in metachain consensus (ex. 1/2 + 1 (~51%) instead 2/3 + 1 (~67%) ) will be done only if: 1. there is a stuck situation (> 50 rounds without a new block created) and 2. the block which can not be created is the start of epoch meta block.
#2267 - Added early end of epoch implementation that can be used in the hardfork process, changed how bech32PubkeyConverter
does the stack dump, added interceptor & resolver debugger in hardfork exporter.
#2346 - Added hysteresis to minimum number of nodes: the waiting list does not have a minimum number of nodes, which means it can reach 0 nodes. No nodes in waiting list will prevent shuffling between shards, so we need to ensure a minimum number of nodes for shuffling.
#2348 - Further import-db improvements: added extra option in import-db mode that can skip headers signature checks, implemented disabled crypto components (suite, scalar, point, single signer & multi signer), disabled heartbeat sender during the import-db process.
#2273 - Modified how the mechanism that index data in elasticsearch database works. Now all method that want to write data in elasticsearch use a buffered chan and a gouroutine writes data that is stored in chan sequentially. This ensures the data is being written completely in the elasticsearch database.
#2350 - Added a new endpoint /node/economics
that will return the economics data for the last epoch. It is available for both meta nodes and shard nodes.
#2341 - Integrated arwen 0.4.0 and vmcommon 0.3.0. The new versions fix a set of bugs, plus opened new possibilities. Readable contract, multi output transfer, calling a smart contract after a built in function execution.
#2363 - Data field for successfully esecuted smart contract results changed from @ok
to @hex("ok")
. Updated the condition in elastic search indexer
#2386 - Made the termui interface refresh faster than one second, fixed the termui estimations on blocks/second and time to a complete sync.
#2404 - For VM's Query Service, use the Warm Wasmer Instance feature (experimental feature). Segregated VM configuration entry into: querying
and execution
.
#2398 - Use upsert
instead of different logic for insert
and update
for elasticsearch transactions. This should solve cases when reimporting data would have caused a sender shard process a transaction after the receiver shard and update the status to 'pending'.
#2415 - Changed the elasticsearch indexer policy setup for a production environment.
Bug fixes:
#2198 - Adapted testnet's script to use the output directory of file generator.
#2185 - Fix transactions when invalid relayed transactions is processed. Needed to add prevHash
for the created failed smart contract result. Tested manually relayed transactions with invalid user nonce.
#2211 - Fixed transactions routing integration test by lowering the number of nodes per shard.
#2191 - Fixed wrong genesis block save in hash-nonce storage.
#2208 - Fixed bootstrap from storage by returning the nodes config when calling Bootstrap()
function.
#2192 - Fixed the condition when a log is printed and also changed the log level in the pruning storer.
#2206 - Tweaked config.toml values for a better sync process, removed a bootstorer bug that prevented the node to start correctly from storage if it had incomplete information, added histogram prints in p2p regarding the peers split on shards.
#2221 - Use block tracker alongside headers pool to fix an edge case situation when self headers were removed from headers pool after a forced roll back action.
#2224 - Fixed the edge case that happened when an async callback failed. In this case, the value should remain in the contract.
#2227 - Fixed memory leak caused by the accumulation of metablocks.
#2228 - Fixed consumed fee computation: the fee was wrongly executed in some cases, as of misinterpretation of one interface.
#2232 - Fixed failing relayed transaction integration tests.
#2234 - Fixed status of a smart contract deploy transaction. A smart contract deploy is always intra-shard.
#2238 - Fixed the situation when empty receipts would have been saved.
#2240 - Fixed the situation when the node is restarted in epoch 0 with db and with StartInEpochEnabled
flag set to false.
#2243 - Fixed the delegation smart contract deploy protection function to work with the hardfork process.
#2246 - Fixed the situation when bech32 warn messages appeared in the indexing process.
#2236 - Fixed how TPS benchmark is computed.
#2244 - Exchanges integration fixes.
#2249 - Fixed the storer to elastic tool: indexed rating for genesis, return with error when a receipts' miniblock is not found, used round duration in format of seconds instead of milliseconds in TPS benchmark updater, index validators in epoch 0.
#2254 - Fixed backward compatibility of transaction gas consumption in case of invalid an invalid transaction.
#2255 - Fixed the stopping process when importing data with the offline syncer.
#2258 - Fixed epoch set in manual epoch notifier.
#2257 - Fixed backwards compatibility for calculation of transaction fee in checkTxValues
method from baseTxProcessor and Fee
method from InterceptedTransaction.
#2263 - Handled concurrency issues occurred with building hyperblock coordinates (using the fast-replay method).
#2259 - Fixed block data cleaning from pools: canceled the removal of block data at the commit time as this was mistakenly forgot to be added.
#2268 - Fixed set of final block after restart in epoch: implemented a mechanism of setting the final checkpoint to the last checkpoint added in list, when a node starts in epoch and it has only one block.
#2260 - Fixed the storer to elastic tool: fixed miniblock not found error, removed the chain ID path from config/flag
, skipped indexing intra-shard smart contract results, replaced the indexing with go routines with the serial one.
#2272 - Fixed the createSCRIfError
function. When smart contract deployment is enabled, asynchronous callbacks cases must be handled correctly.
#2277 - Fixed meta smart contract processor arguments. The arguments are now passing the enabled epoch configs to the smart contract processor for the metachain nodes.
#2276 - Fixed execution order of cross mini blocks: implemented the execution of miniblocks in a chronological way for cross shard mini blocks, taking into consideration the round in which they were created/executed in sender shard.
#2279 - Fixed concurrent access on a map that stored shard statistics information for TPS benchmark.
#2293 - Made the changes to the staking smart contract backward compatible by using 2 different versions of underlying protobuf structure.
#2296 - Fixed the configuration files by replacing the old ERD
name to eGLD
, adapted some default values in systemSmartContractsConfig.toml
file.
#2313 - Fixed relayed transaction when transaction fails and the value has to be sent back to the relayer. With old code the shard would stuck.
#2308 - Fixed p2p prints when displaying connected peers info, added time measurements when executing the pruning operation, removed deprecated code when turning off message signing (during tests).
#2303 - Made jailed node process being backwards compatible.
#2319 - Updated comment in ratings.toml
file decreaseRating step to 4*increaseratingStep
#2321 - Fixed the wrong termui gauge display when a too long label was provided by trimming the label according to the actual space that a gauge has.
#2323 - Improved subround EndRound for final info, fixed some mocks, fixed some linter warns.
#2322 - Fixed an incompatibility issue: set to jailed when account is inactive and with infinite unstaked epoch after jailing is enabled.
#2325 - Fixed an incompatibility issue: receipt hash missmatch because config was not added into smart contract result as in mainnet version.
#2326 - Removed some direct nil comparison in accounts DB struct, added prints for IsValidator
function.
#2333 - Configuration files cleanup.
#2343 - Transaction routing fixes: removed the possibility to broadcast a transaction from any node in the network. Each transaction will get broadcast only if it will be routed to the sender's shard ID node. Added unit and integration tests that prove that the transaction validation works as expected
#2347 - ESDT backwards compatibility fixes. Added flags where code changed.
#2337 - Economics adjustements: according to the economics document if a validator has a number of signatures included below 2.5% all the rating increases as a validator, validatorSuccess and validatorIgnored should be reverted for the current epoch.
#2345 - Fixed the tx simulation process by using a read only accounts DB implementation.
#2289 - Changed transactions' statuses for indexer and API transaction status fetcher. Now they use the same messages from the same place.
#2361 - Fixed the tx simulation process, added unit tests for tx simulation REST API endpoint.
#2349 - Fix how gas used is calculated for move balance transactions when indexing transactions in elasticsearch database.
#2367 - Fixed testnet compatibility issue that happened when trying to import a DB on the testnet version T1.1.3.0.
#2371 - Fixed transaction dispatching in integration tests.
#2396 - Fixed import-db process when a shard did not include metachain blocks for more than 2 epochs.
#2401 - Made the elasticsearch indexer not sending transactions if the node is in the transaction's sender shard when running in import-db mode.
#2413 - Fixed the elasticsearch indexer: made each indexer error be a retryable one, so the indexer will try to re-index the failed data, treated error in elasticDefaultErrorResponseHandler function, added and fixed unit tests, changed the indexer so it can better output errors when failing to index a header.