Skip to content

Releases: hyperledger-iroha/iroha

2.0.0-pre-rc.3

10 May 11:10
8d83a3e
Compare
Choose a tag to compare
2.0.0-pre-rc.3 Pre-release
Pre-release
  • Schema changes that fix #1969
  • Schema endpoint (use curl -X GET http://127.0.0.1:8080/schema)
  • WASM decode optimisations
  • timed triggers
  • Improved API for generating ISI (documentation pending)
  • By-call triggers

2.0.0-pre-rc.2

05 Mar 12:10
920e4d1
Compare
Choose a tag to compare
2.0.0-pre-rc.2 Pre-release
Pre-release

Contains accumulated work and is the first timed public release of Iroha 2. Currently includes

  • Fully functioning Sumeragi consensus
  • Partial support for permissioned and permissionless deployment
  • Fully functional front- and back-end, for block deployment and synchronisation.
  • Prometheus metrics
  • Basic trigger implementation
  • Basic WASM support
  • Fully functional structured logging without rotation

The tutorial describing how to get started can be found here

1.4.0

17 Feb 10:00
310d1cd
Compare
Choose a tag to compare

Since 1.3 the team implemented the following features and fixes:

Features

Syncing Node #1648

Adds syncing node state for Iroha.

What is a syncing node?

Node in the state can:

  • send transactions
  • execute queries
  • synchronize with remote nodes
  • apply and validate blocks
  • construct WSV

It can not:

  • request proposals
  • send votes(votes from such a node will be skipped)
  • generate events of building block

RocksDB Metrics #1692

Healthcheck #1735

Added healthcheck interfaces via:

  • http
  • grpc
  • metrics

General Fixes

Iroha v1.4-rc.1 fixes #1785 :

  • Drop wsv flag behavior
  • Signatory case insensetive checks
  • Transaction status description from 5 byte to 1 byte if true or 0 byte if false
  • Bloom filter in RDB
  • RadixTrie enumerates nodes by prefix filter
  • RDB 2-layer cache for WSV

Iroha v1.4-rc.2 fixes #1824 :

  • Switched from optimistic to transactions database in RocksDB
  • WSV and block store are now in different column families
  • WSV schema version increased to 1.4.0

GitHub Action Docker tag #1609

Fixed sample config files (from max_rounds_delay to proposal_creation_timeout and deprecated DB connection string) #1662

Docs Fixes

Fixed broken links: build status, build guide, etc. #1318
Small Fixes on Configuration and Docker Metrics #1654
Added missing dependencies: #1393

1.4.0-rc.1

24 Jan 09:28
Compare
Choose a tag to compare
1.4.0-rc.1 Pre-release
Pre-release

Features

Syncing Node #1648

Adds syncing node state for Iroha.

What is a syncing node?

Node in the state can:

  • send transactions
  • execute queries
  • synchronize with remote nodes
  • apply and validate blocks
  • construct WSV

It can not:

  • request proposals
  • send votes(votes from such a node will be skipped)
  • generate events of building block

RocksDB Metrics #1692

Healthcheck #1735

Added healthcheck interfaces via:

  • http
  • grpc
  • metrics

Docs Fixes

Fixed broken links: build status, build guide, etc. #1318
Small Fixes on Configuration and Docker Metrics #1654

1.3.0

19 Nov 07:33
54ff345
Compare
Choose a tag to compare

Here is the list of changes that were implemented since Iroha v1.2.1:

Features:

Subscription engine #813

Subscription engine singleton #849
SE features update #914:

Fixed thread pool tasks balancer #1271

Metrics #943

  • Add CMake files to .clang-format-ignore
  • Disable prometheus-cpp logs
  • Extend WSV to countDomains(), countTransactions(), countPeers()
  • -fno-lto to link GCC-10 and clang with civetweb which was built with GCC-9
  • Tests dependant on ametsuchi are linked against sync_subscription, not async
    Metrics Uptime #1471

Prometheus metrics sample #841
Documentation #1346

GitHub Actions #1028

A script to request tags of docker repository from DockerHub using curl and jq #1288
Improvements and fixes #1291, #1313, #1343, #1357, #1284, #1157, #1039
Fixed CI and automatic builds #1450, #1567, #1578, #1589
Better cathegories in CTest logs #1564

RocksDB #1084

Added rocksdb initialization and basic functionality #954
RocksDB implementation for WsvCommand and WsvQuery #976
RocksDB implementation of Indexer #983
RocksDB command executor #1013
Invalid precision test fix for RocksDB implementation #1089
Fix: Read precision in SubstractAssetQuantity #1091
Specific query executor #1049
Block Store #1304
RocksDB cache #1335
Print current DB status on exit #1410
Memory leaks fixes #1410

Tools for Migration to RocksDB

wsv_checker #1294
Migration-tool #1320
Adding the tools to Docker #1426
Tests for tools iroha_migrate, iroha_wsv_diff #1597

Proposal Creation Timeout #1011:

  • Replace round delay with proposal creation timeout
  • Send batches to current and next rounds
  • Decouple Yac and OnDemandOrdering from rxcpp
  • Asynchronous proposal request

Optional gRPC Parameters #1048

Additional Commands and Queries for Burrow #1326

Implemented by this year's Hyperledger intern @Ayush-Jalan with @baziorek as a mentor
Documentation on new commands #1334
Missing queries integration to Burrow #1443

Queries extension by modifing TxPaginationMeta #1092

Implemented by this year's Hyperledger intern @Pawlak00 with @baziorek as a mentor
Extending GetPendingTransactions #1300

Other Features

Async dispatcher implementation #962
Default log manager now reports config-file issues #951
Now CanAddPeer permission also allows the user to remove peers #1362

Fixes

reinterpret_pointer_cast fix for clang build #909
No --drop-state flag is needed for the first run anymore #900 (+ test fix #925)
Enabled reinterpret_pointer_cast for apple platform only to fix build #932
AmetsuchiTest: added condition for prepared block tests #952
reinterpret_pointer_cast moved to iroha namespace #1000
Iroha no longer freezes in GRPC when message of more than 4 MB are sent to it #1003
FlatFile: made the file close before rename #1012
Synchronization fix #1073
Postgres_options_test fix
Ordering Service batches cache + small block fixup #1327
Fixed integration tests #1347,
Fixed integration tests #1347, #1378
Query permission test fix #1380
Fixed add_peer_test #1408
RocksDBWsvQuery: fixed buffer reuse in getPeerByPublicKey #1505
Fixed MST expiration #1488, #1489, #1490, #1521, #1557
YAC logical fixes #1410
Ordering Service removing duplicated transactions #1410
Prevented Ordering Service server from creating blocks when there are not enough transactions in the pool #1581
Restoring WSV Fix #1528, #1472
GetTransactions request fix #1410
on_demand_os_client_grpc test freeze fix #1410

Infrastructure

Increase Windows CI disk size #918
Remove outdated usages of master branch #924
Fixed CI badge #1367
Added missing brew dep #1336
Added scripts/fix-dco.sh #1303

Refactoring

Refactored YAC #1110
Removed boost::adaptors::filter which could be dereferenced multiple times causing performance decrease #869
Remove rxcpp #1004
Internal storage refactoring #1410

Docs

Fixed Links #912
Additional Information About Configuration + Small Documentation Build Fixes #879
PR template change #1002
Added description of metrics flags #1006
Fixed Config example in Docs #1037, #1360
Block Path Config Description #1080
Updated documentation requirements #1359, #1159
Configuration Fix #1360
Removed Doxygen build #1377
Docs: Migration Tool and WSV Checker Use #1412
Fixed Build Instructions #1503
Fixed Starting Container Instructions for RocksDB Iroha #1600

Main team preparing the release: @kuvaldini, @iceseer, @LiraLemur

Results of the Performance Testing can be found here

1.3.0-rc.1

02 Sep 11:21
7123e2b
Compare
Choose a tag to compare
1.3.0-rc.1 Pre-release
Pre-release

Features:

Subscription engine #813

Subscription engine singleton #849
SE features update #914:

Fixed thread pool tasks balancer #1271

Metrics #943

  • Add CMake files to .clang-format-ignore
  • Disable prometheus-cpp logs
  • Extend WSV to countDomains(), countTransactions(), countPeers()
  • -fno-lto to link GCC-10 and clang with civetweb which was built with GCC-9
  • Tests dependant on ametsuchi are linked against sync_subscription, not async

Prometheus metrics sample #841
Documentation #1346

GitHub Actions #1028

A script to request tags of docker repository from DockerHub using curl and jq #1288
Improvements and fixes #1291, #1313, #1343, #1357, #1284, #1157, #1039

RocksDB #1084

Added rocksdb initialization and basic functionality #954
RocksDB implementation for WsvCommand and WsvQuery #976
RocksDB implementation of Indexer #983
RocksDB command executor #1013
Invalid precision test fix for RocksDB implementation #1089
Fix: Read precision in SubstractAssetQuantity #1091
Specific query executor #1049
Block Store #1304
RocksDB cache #1335

Tools for Migration to RocksDB

wsv_checker #1294
Migration-tool #1320

Proposal Creation Timeout #1011:

  • Replace round delay with proposal creation timeout
  • Send batches to current and next rounds
  • Decouple Yac and OnDemandOrdering from rxcpp
  • Asynchronous proposal request

Optional gRPC Parameters #1048

Additional Commands and Queries for Burrow #1326

Implemented by this year's Hyperledger intern @Ayush-Jalan with @baziorek as a mentor
Documentation on new commands #1334

Queries extension by modifing TxPaginationMeta #1092

Implemented by this year's Hyperledger intern @Pawlak00 with @baziorek as a mentor
Extending GetPendingTransactions #1300

Other Features

Async dispatcher implementation #962
Default log manager now reports config-file issues #951
Now CanAddPeer permission also allows the user to remove peers #1362

Fixes

reinterpret_pointer_cast fix for clang build #909
No --drop-state flag is needed for the first run anymore #900 (+ test fix #925)
Enabled reinterpret_pointer_cast for apple platform only to fix build #932
AmetsuchiTest: added condition for prepared block tests #952
reinterpret_pointer_cast moved to iroha namespace #1000
Iroha no longer freezes in GRPC when message of more than 4 MB are sent to it #1003
FlatFile: made the file close before rename #1012
Synchronization fix #1073
Postgres_options_test fix
Ordering Service batches cache + small block fixup #1327
Fixed integration tests #1347,
Fixed integration tests #1347, #1378
Query permission test fix #1380

Infrastructure

Increase Windows CI disk size #918
Remove outdated usages of master branch #924
Fixed CI badge #1367
Added missing brew dep #1336
Added scripts/fix-dco.sh #1303

Refactoring

Refactored YAC #1110
Removed boost::adaptors::filter which could be dereferenced multiple times causing performance decrease #869
Remove rxcpp #1004

Docs

Fixed Links #912
Additional Information About Configuration + Small Documentation Build Fixes #879
PR template change #1002
Added description of metrics flags #1006
Fixed Config example in Docs #1037, #1360
Block Path Config Description #1080
Updated documentation requirements #1359, #1159
Configuration Fix #1360
Removed Doxygen build #1377

1.2.1

19 Mar 15:15
3af3dea
Compare
Choose a tag to compare

For this minor release we did some pretty big improvements:

New Proposal Sending Strategy #763

From now on, Iroha's Ordering Service as well as Ordering Gate treat proposals differently. Cache is also reworked.
This new strategy will ensure stability of the consensus even on smaller networks consisting of nodes with different connection speed.

Fixes:

  • Now Iroha is more stable when there are faulty and unstable nodes in the network #809
  • Block synchronisation fixed by using new state parameters by default when you perform WSV reuse #812
  • Fixed node crashing in cases when votes for the next round are received before actually voting #742
  • Improved performance for batch database requests #791
  • Fixed a segmentation fault #796
  • Fixed block synchronization timeout #840

1.2.0

27 Nov 10:59
Compare
Choose a tag to compare

New Features!

HL Ursa Integration:

We introduce full HL Ursa integration – now you can connect new cryptography algorithms supported by Ursa project.

Learn more
  • Integrate Hyperledger Ursa as a cryptography provider #184
  • Adding HL Ursa keys to example #264
  • Add crypto benchmarks for iroha-ed25519 and Ursa #276

Multihash integration

Now Iroha can use the Multihash library to encode public-key and signature data to support either cryptography backend (native Iroha algorithm and HL Ursa)

Learn more
  • Multihash integration #263
  • Docs: Multihash #522
  • Use the crypto provider corresponding to public key type during runtime #315

HL Burrow integration #421

Iroha now supports Solidity smart-contracts via EVM by HL Burrow

Learn more
  • Docs: HL Burrow Documentation and RTD Fixes #494
  • Call engine command #489
  • add USE_BURROW option to Jenkins CI #508
  • postgres burrow storage #493

On request proposal strategy #95

This change will make the work of Ordering Service more consistent and make sure that all the nodes receive correct information in all cases.

Executor ITF:

We also have been working on a special integrated test facility for the executor and populating it with tests.

Learn more
  • Tests already added:
    • remove_signatory_test #284
    • get_asset_info_test #283
    • get_account_test #282
    • create_role_test #281
    • get_account_detail_test #236
    • get_signatories_test #235
    • get_account_assets_test #234
    • create_account_test #229
    • set_account_detail_test #228
    • query permissions common test #227
    • add_asset_qty_test #226
    • add_signatory_test #225
    • common command permission test #291
  • PostgreSQL backend #222
  • Common base fixture #217
  • Reworked query execution functions #212
  • Included domain in default group name #211
  • Command validation setup #210
  • Parametric backend #208

TLS support to Torii #107

Preparations for P2P TLS:

We want Iroha to be the most secure and reliable platform for your assets and data, as well as your privacy. That is why we kept working on TLS for this release and will continue doing just that – all for the sake of security of your solutions. It is not ready, yet, but we are getting closer!

Learn more
  • P2P TLS: added credentials loading #274
  • P2P TLS: added peer TLS certificate providers #279
  • Add TLS certificates into Peer #250
  • PeerQuery: added peers query by public key #267

Root permission #218

This is a permission that will give the administrator all of the permissions available to maintain the system and, if needed, intervene and resolve any issues. Also useful for additional functionality, if you decide to implement it. Use it carefully!

Add settings to customize ledger #133

New genesis block settings to make Iroha fit the needs of your exact project perfectly.

Restarting: option to keep WSV data #335, #407, #704

Now, it will be possible to restart nodes quicker after failure – without the need to reload all the blocks but just based on the World State View.

Linux One architecture support #684, #638

Major Component Improvements:

Ametsuchi:

Ametsuchi is Iroha storage component, which stores blocks and a state generated from blocks, called World State View. Not only we recently added an option of restoring a state of network from WSV, but also worked on Ametsuchi itself for more efficient work.

Learn more
  • Transactions query detects missing transactions #298
  • Reuseable PostgresIndexer #297
  • Removed ambiguous call to apply #248
  • Pass dependencies for query executor creation #203
  • Fixed asset quantity overflow detection #154
  • PostgreSQL command executor uses prepared statements only #165
  • Moved TransactionExecutor init to StorageImpl #190
  • Add SpecificQueryExecutor interface #189
  • Query executor creator returns result #330
  • Ametsuchi: fixed root permission for account creation: #610
  • Ametsuchi: remove sql dependency from VmCaller: #695

PostgeSQL:

PostgeSQL is a database that Iroha uses to write down the World State View and, optionally, as a blockstore – saving the most precious thing about blockchain – its blocks. That is why we believe that improving this component is extremely important and that is why a lot of work was done to secure its stable and reliable work.

Learn more
  • PgConnectionInit::checkIfWorkingDatabaseIfExists #175
  • Moved drop database DDL to PgConnectionInit #174
  • PostgresCommandExecutor: fixed unconditional signatory addition #220
  • PostgresCommandExecutor: removed creator id and do validation #215
  • PostgresSpecificQueryExecutor: removed creator id and query hash fields #214
  • PostgresBlockStorage: fixed missing blocks handling & refactor #232
  • Use Postgres instead of flat files for storing blocks #132
  • PostgresIndexer: bulk insert #320
  • PostgreSQL: reconnect to working database after failure: #564
  • PostgresSpecificQueryExecutor: case-insensitive hash checks: #651

Shared Model:

Shared model is how Iroha entities are represented in C++ code – the heart of the framework. That is why even small changes can boost system's efficiency so much.

Learn more
  • Replace boost optional with std #382
  • Updated blob on addSignature #325
  • Simplified proto query backend #270
  • Amount construction #157
  • Moved AccountDetailRecordId from shared_model::interface::types to shared_model::plain #199
  • Reworked copying policy #206
  • Use hex for public key and signature in interface #409

MST:

Multisignature transactions are important in many use-cases, that is why we continuously improve their processing.

Changes in MST
  • use response from transport #442
  • fix rx usage to send state #514
  • Fix/mst state #378
  • MST: fix propagation of updates from Torii #434
  • Fix/mst phantom transactions #476
  • MST tests: wait...
Read more

1.2.0-rc.2

22 Sep 07:20
Compare
Choose a tag to compare
1.2.0-rc.2 Pre-release
Pre-release

In the second release candidate, we fixed some issues of the previous version and improved documentation, as well as some features.

Fixes and improvements

Fixed synchronisation: #556
Fixed key pair validation: #557
Ametsuchi: fixed root permission for account creation: #610
PostgreSQL: reconnect to working database after failure: #564
Ursa build dependancy fix: #629
Fixed s390x build related issues: #637
Fix ninja build in wsv_query_test: #632
Make query signature check case-insensitive: #606
Added CompareAndSetAccountDetail.need_to_check_empty for legacy compatibility: #612
Documentation fixes: #544, #522, #560#634, #625, #658, #588, #513#652

1.2.0-rc.1

10 Jun 08:43
Compare
Choose a tag to compare
1.2.0-rc.1 Pre-release
Pre-release

New Features!

HL Ursa Integration:

We introduce full HL Ursa integration – now you can connect new cryptography algorithms supported by Ursa project.

Learn more
  • Integrate Hyperledger Ursa as a cryptography provider #184
  • Adding HL Ursa keys to example #264
  • Add crypto benchmarks for iroha-ed25519 and Ursa #276

Multihash integration

Now Iroha can use the Multihash library to encode public-key and signature data to support either cryptography backend (native Iroha algorithm and HL Ursa)

Learn more
  • Multihash integration #263
  • Docs: Multihash #522
  • Use the crypto provider corresponding to public key type during runtime #315

HL Burrow integration #421

Iroha now supports Solidity smart-contracts via EVM by HL Burrow

Learn more
  • Docs: HL Burrow Documentation and RTD Fixes #494
  • Call engine command #489
  • add USE_BURROW option to Jenkins CI #508
  • postgres burrow storage #493

On request proposal strategy #95

This change will make the work of Ordering Service more consistent and make sure that all the nodes receive correct information in all cases.

Executor ITF:

We also have been working on a special integrated test facility for the executor and populating it with tests.

Learn more
  • Tests already added:
    • remove_signatory_test #284
    • get_asset_info_test #283
    • get_account_test #282
    • create_role_test #281
    • get_account_detail_test #236
    • get_signatories_test #235
    • get_account_assets_test #234
    • create_account_test #229
    • set_account_detail_test #228
    • query permissions common test #227
    • add_asset_qty_test #226
    • add_signatory_test #225
    • common command permission test #291
  • PostgreSQL backend #222
  • Common base fixture #217
  • Reworked query execution functions #212
  • Included domain in default group name #211
  • Command validation setup #210
  • Parametric backend #208

TLS support to Torii #107

Preparations for P2P TLS:

We want Iroha to be the most secure and reliable platform for your assets and data, as well as your privacy. That is why we kept working on TLS for this release and will continue doing just that – all for the sake of security of your solutions. It is not ready, yet, but we are getting closer!

Learn more
  • P2P TLS: added credentials loading #274
  • P2P TLS: added peer TLS certificate providers #279
  • Add TLS certificates into Peer #250
  • PeerQuery: added peers query by public key #267

Root permission #218

This is a permission that will give the administrator all of the permissions available to maintain the system and, if needed, intervene and resolve any issues. Also useful for additional functionality, if you decide to implement it. Use it carefully!

Add settings to customize ledger #133

New genesis block settings to make Iroha fit the needs of your exact project perfectly.

Restarting: option to keep WSV data #335, #407

Now, it will be possible to restart nodes quicker after failure – without the need to reload all the blocks but just based on the World State View.

Major Component Improvements:

Ametsuchi:

Ametsuchi is Iroha storage component, which stores blocks and a state generated from blocks, called World State View. Not only we recently added an option of restoring a state of network from WSV, but also worked on Ametsuchi itself for more efficient work.

Learn more
  • Transactions query detects missing transactions #298
  • Reuseable PostgresIndexer #297
  • Removed ambiguous call to apply #248
  • Pass dependencies for query executor creation #203
  • Fixed asset quantity overflow detection #154
  • PostgreSQL command executor uses prepared statements only #165
  • Moved TransactionExecutor init to StorageImpl #190
  • Add SpecificQueryExecutor interface #189
  • Query executor creator returns result #330

PostgeSQL:

PostgeSQL is a database that Iroha uses to write down the World State View and, optionally, as a blockstore – saving the most precious thing about blockchain – its blocks. That is why we believe that improving this component is extremely important and that is why a lot of work was done to secure its stable and reliable work.

Learn more
  • PgConnectionInit::checkIfWorkingDatabaseIfExists #175
  • Moved drop database DDL to PgConnectionInit #174
  • PostgresCommandExecutor: fixed unconditional signatory addition #220
  • PostgresCommandExecutor: removed creator id and do validation #215
  • PostgresSpecificQueryExecutor: removed creator id and query hash fields #214
  • PostgresBlockStorage: fixed missing blocks handling & refactor #232
  • Use Postgres instead of flat files for storing blocks #132
  • PostgresIndexer: bulk insert #320

Shared Model:

Shared model is how Iroha entities are represented in C++ code – the heart of the framework. That is why even small changes can boost system's efficiency so much.

Learn more
  • Replace boost optional with std #382
  • Updated blob on addSignature #325
  • Simplified proto query backend #270
  • Amount construction #157
  • Moved AccountDetailRecordId from shared_model::interface::types to shared_model::plain #199
  • Reworked copying policy #206
  • Use hex for public key and signature in interface #409

MST:

Multisignature transactions are important in many use-cases, that is why we continuously improve their processing.

Changes in MST
  • use response from transport #442
  • fix rx usage to send state #514
  • Fix/mst state #378
  • MST: fix propagation of updates from Torii #434
  • Fix/mst phantom transactions #476
  • MST tests: wait for commit before get pending query #533

Other Improvements:

Documentation:

For this release we have restructured the documentation – clearer sections based on your needs. Information on integration with other projects was added, as ...

Read more