Details
-
Task
-
Status: Complete
-
Medium
-
Resolution: Done
-
None
-
None
-
None
-
EV 18.13 Benchmark hardening
Description
Version Information
indy-node 1.4.66
indy-plenum 1.4.45
indy-anoncreds 1.0.11
sovrin 1.1.11
Major Fixes
INDY-1410 - One of the nodes stopped writing after 44287 txns with errors in status
INDY-1365 - Pool stopped accepting transactions on 5731 txns (1 sec delays, no logging)
INDY-1315 - Pool stopped writing after ~300,000 txns from 5 clients
INDY-1351 - STN not accepting transactions with only one node down
INDY-1260 - Pool stops taking txns at ~178k txns written in ledger
INDY-1327 - `ReqIdrToTxn` does not store information about the ledger
INDY-1341 - Simple Timeout fixes of the current View Change protocol
INDY-1379 - Migration fails in case of upgrade to version with new transactions format
INDY-1318 - --network parameter of read_ledger doesn't work
INDY-1310 - The /var/log/indy/validator-info.log is inappropriately owned by root
INDY-1298 - Fix the issues found in the current logic of catch-up
INDY-1363 - GetValidatorInfo should have correct validation for signature and permissions
INDY-1316 - Unhandled exception during node working
INDY-1219 - validator-info and read_ledger give inconsistent responses in node on provisional
INDY-1259 - Pool stops taking txns at 3000 writing connections
Changes and Additions
INDY-810 - Review and replace 'assert' with exceptions in indy-plenum where needed
INDY-1245 - Tune RocksDB options for the best performance
INDY-1392 - As a developer, I need to have migration guide from Indy-node 1.3 to 1.4
INDY-1370 - Сhange key in requests map and field reqIdr in Pre Prepare and Ordered
INDY-1400 - Investigate issues found during load testing of 25-nodes pool with increased timeouts for catchups and viewchange
INDY-1332 - Support binding on separate NICs for Client-to-Node and Node-to-Node communication
INDY-1329 - Add short checkpoints stabilization without matching digests
INDY-1323 - Add indy-crypto package to hold list
INDY-1297 - Remove ledger status based catch-up trigger together with wrong catch-up workflow
INDY-1243 - Read-ledger without storage copy in case of RocksDB (RocksDB read-only mode support)
INDY-971 - Apply state machine to Catchup code
INDY-1124 - Refactor common Request structure
INDY-1123 - Refactor common transactions structure
INDY-1319 - Support new libindy with changed txn format
INDY-1334 - Explore config parameters to find the best performance/stability settings
INDY-1175 - Extend of Validator Info tool to provide more information about the current state of the pool
INDY-1184 - A Steward needs to be able to get validator-info from all nodes
INDY-1279 - Modify existing load scripts for a better load testing
INDY-1244 - Migration from LevelDB to RocksDB
INDY-1173 - A Trustee needs to be able to restart the pool in critical situations
INDY-1275 - Move log compression into separate process
Known Issues
INDY-1415 - Incorrect read_ledger info with seq_no parameter
Pool upgrade should be performed simultaneously for all nodes due to txn format changes.
All indy-cli pools should be recreated with actual genesis files.
Added and promoted nodes should be restarted (`systemctl restart indy-node`) after adding/promoting.
List of breaking changes for migration from indy-node 1.3 to 1.4:
https://github.com/hyperledger/indy-node/blob/master/docs/1.3_to_1.4_migration_guide.md
IndyNode 1.4 and LibIndy 1.5 compatibility:
General
By default LibIndy 1.5 will be compatible with IndyNode 1.3 (current stable), and not 1.4 (the new one).
LibIndy 1.5 can become compatible with IndyNode 1.4 if `indy_set_protocol_version(2)` is called during app initialization.
Guideline for teams and apps
Applications can freely update to LibIndy 1.5 and still use stable Node 1.3
If an app wants to work with the latest master or Stable Node 1.4, then they need to
support breaking changes (there are not so many, mostly a new reply for write txns as txn format is changed, see 1.3_to_1.4_migration_guide.md)
call `indy_set_protocol_version(2)` during app initialization
CLI Upgrading:
Old CLI (`indy`):
- upgrade from 1.3 to 1.4 version
- delete `~.ind-cli/networks/<network_name>/data` folder
- replace both old genesis files by new ones (from 1.4 node or from sovrin repo)
New CLI (`indy-cli`):
- upgrade from 1.4 to 1.5 version
- recreate indy-cli pool using 1.4 pool genesis file (from 1.4 node or from sovrin repo)
Use https://github.com/hyperledger/indy-sdk/blob/b4a2bb82087e2eafe5e55bddb20a3069e5fb7d0b/cli/README.md#old-python-based-cli-migration to export dids from your old CLI wallet to the new one (new indy-cli).