Releases: hyperledger/iroha
2.0.0-pre-rc.22.2
Added
Changed
- sign only block's header, not the whole payload (#5000)
- use
HashOf<BlockHeader>
as the type of the block hash (#4998) - Don't validate transactions inside WASM (#4995)
Fixed
- remove expired transaction from cache (#4922)
- Serialize WASM code for snapshots (#5009)
- correctly handle
replace_top_block
(#4870) - validate block sync messages (#4965)
- prevent redundant blocksync block messages (#4909)
- use
GET
for blocks stream (#4990) - Improve queue transactions handling (#4947)
- display more error details (#4973)
- prevent deadlock on simultaneous sending large message (#4948)
2.0.0-pre-rc.22.1
Fixed
- added
jq
to the docker image
2.0.0-pre-rc.22.0
Added
- specify on-chain parameters explicitly in genesis (#4812)
- allow turbofish with multiple
Instruction
s (#4805) - reimplement multisignature transactions (#4788)
- implement built-in vs custom on-chain parameters (#4731)
- improve custom instruction usage (#4778)
- make the metadata dynamic via implementing JsonString (#4732)
- allow multiple peers submit genesis block (#4775)
- supply
SignedBlock
instead ofSignedTransaction
to peer (#4739) - custom instructions in executor (#4645)
- extend client cli to request json queries (#4684)
- add detect support for
parity_scale_decoder
(#4680) - generalize permissions schema to executor data model (#4658)
- added register trigger permissions in the default executor (#4616)
- support JSON in
parity_scale_cli
- deduplicate triggers with the same wasm code (#4434)
- introduce p2p idle timeout
Changed
- replace
lol_alloc
withdlmalloc
(#4857) - rename
type_
totype
in schema (#4855) - replace
Duration
withu64
in schema (#4841) - use
RUST_LOG
-like EnvFilter for logging (#4837) - keep voting block when possible (#4828)
- migrate from warp to axum (#4718)
- split executor data model (#4791)
- shallow data model (#4734) (#4792)
- don't send public key with signature (#4518)
- rename
--outfile
to--out-file
(#4679) - rename iroha server and client (#4662)
- rename
PermissionToken
toPermission
(#4635) - reject
BlockMessages
eagerly (#4606) - make
SignedBlock
immutable (#4620) - rename TransactionValue into CommittedTransaction (#4610)
- authenticate personal accounts by ID (#4411)
- use multihash format for private keys (#4541)
- rename
parity_scale_decoder
toparity_scale_cli
- send blocks to observing peers
- make
Role
transparent (#4886) - derive block hash from header (#4890)
Fixed
- check that authority owns domain to transfer (#4807)
- remove logger double initialization (#4800)
- fix naming convention for assets and permissions (#4741)
- upgrade executor in separate transaction in genesis block (#4757)
- make
iroha_smart_contract_utils
log
anddbg
functions work outside of wasm (#4725) - correct default value for
JsonString
(#4692) - improve deserialization error message (#4659)
- do not panic if the passed Ed25519Sha512 public key is of invalid length (#4650)
- use proper view change index on init block load (#4612)
- don't prematurely execute time-triggers before their
start
timestamp (#4333) - support
https
fortorii_url
(#4601) (#4617) - remove serde(flatten) from SetKeyValue/RemoveKeyValue (#4547)
- trigger set is correctly serialized
- revoke removed
PermissionToken
s onUpgrade<Executor>
(#4503) - report correct view change index for current round
- remove corresponding triggers on
Unregister<Domain>
(#4461) - check genesis pub key in genesis round
- prevent registering genesis Domain or Account
- remove permissions from roles on entity unregistration
- trigger metadata is accessible in smart contracts
- use rw lock to prevent inconsitent state view (#4867)
- handle soft fork in snapshot (#4868)
- fix MinSize for ChaCha20Poly1305
- add limits to LiveQueryStore to prevent high memory usage (#4893)
Removed
- remove public key from ed25519 private key (#4856)
- remove kura.lock (#4849)
- revert
_ms
and_bytes
suffixes in config (#4667) - remove
_id
and_file
suffix from genesis fields (#4724) - remove index Assets in AssetsMap by AssetDefinitionId (#4701)
- remove domain from trigger identity (#4640)
- remove genesis signing from Iroha (#4673)
- remove
Visit
bound fromValidate
(#4642) - remove
TriggeringEventFilterBox
(#4866) - remove
garbage
in p2p handshake (#4889) - remove
committed_topology
from block (#4880)
Security
- sign all query parameters, implement query filters in wasm
- guard against secrets leakage
2.0.0-pre-rc.21.1
2.0.0-pre-rc.21
Added
- include trigger id in trigger entrypoint (#4391)
- expose event set as bitfields in schema (#4381)
- introduce new
wsv
with granular access (#2664) - add event filters for
PermissionTokenSchemaUpdate
,Configuration
andExecutor
events - introduce snapshot "mode" (#4365)
- allow granting/revoking role's permissions (#4244)
- introduce arbitrary-precision numeric type for assets (remove all other numeric types) (#3660)
- different fuel limit for Executor (#3354)
- integrate pprof profiler (#4250)
- add asset subcommand in client CLI (#4200)
Register<AssetDefinition>
permissions (#4049)- add
chain_id
to prevent replay attacks (#4185) - add subcommands to edit domain metadata in client CLI (#4175)
- implement store set, remove, get operations in Client CLI (#4163)
- count identical smart contracts for triggers (#4133)
- add subcommand into client CLI to transfer domains (#3974)
- support boxed slices in FFI (#4062)
- git commit SHA to client CLI (#4042)
- proc macro for default validator boilerplate (#3856)
- build progress information to
wasm_builder_cli
(#3237) - introduced query request builder into Client API (#3124)
- lazy queries inside smart contracts (#3929)
fetch_size
query parameter (#3900)- asset store tranfer instruction (#4258)
- guard against secrets leakage (#3240)
- deduplicate triggers with the same source code (#4419)
Changed
- bump rust toolchain to nightly-2024-04-18
- send blocks to observing peers (#4387)
- split pipeline events into block and transaction events (#4366)
- rename
[telemetry.dev]
config section to[dev_telemetry]
(#4377) - make
Action
andFilter
non-generic types (#4375) - improve event filtering API with builder pattern (#3068)
- unify various event filter APIs, introduce a fluent builder API
- rename
FilterBox
intoEventFilterBox
- rename
TriggeringFilterBox
intoTriggeringEventFilterBox
- improve filter naming, e.g.
AccountFilter
->AccountEventFilter
- rewrite config according to the configuration RFC (#4239)
- hide internal structure of the versioned structs from the public API (#3887)
- temporarily introduce predictable ordering after too many failed view changes (#4263)
- use concrete key types in
iroha_crypto
(#4181) - split view changes from normal messages (#4115)
- make
SignedTransaction
immutable (#4162) - export
iroha_config
throughiroha_client
(#4147) - export
iroha_crypto
throughiroha_client
(#4149) - export
data_model
throughiroha_client
(#4081) - remove
openssl-sys
dependency fromiroha_crypto
and introduce configurable tls backends toiroha_client
(#3422) - replace unmaintained EOF
hyperledger/ursa
with in-house solutioniroha_crypto
(#3422) - optimize executor performance (#4013)
- topology peer update (#3995)
Fixed
- remove corresponding triggers on
Unregister<Domain>
(#4461) - remove permissions from roles on entity unregistration (#4242)
- assert that genesis tranasction is signed by genesis pub key (#4253)
- introduce timeout for unresponsive peers in p2p (#4267)
- prevent registering genesis Domain or Account (#4226)
MinSize
forChaCha20Poly1305
(#4395)- start console when
tokio-console
is enabled (#4377) - separate each item with
\n
and recursively create parent directories fordev-telemetry
file logs - prevent account registration without signatures (#4212)
- key pair generation is now infallible (#4283)
- stop encoding
X25519
keys asEd25519
(#4174) - do signature validation in
no_std
(#4270) - calling blocking methods within async context (#4211)
- revoke associated tokens on entity unregistretration (#3962)
- async blocking bug when starting Sumeragi
- fixed
(get|set)_config
401 HTTP (#4177) musl
archiver name in Docker (#4193)- smart contract debug print (#4178)
- topology update on restart (#4164)
- registration of new peer (#4142)
- on-chain predictable iteration order (#4130)
- re-architect logger and dynamic configuration (#4100)
- trigger atomicity (#4106)
- query store message ordering issue (#4057)
- set
Content-Type: application/x-parity-scale
for endpoints which reply using SCALE
Removed
logger.tokio_console_address
configuration parameter (#4377)NotificationEvent
(#4377)Value
enum (#4305)- MST aggregation from iroha (#4229)
- cloning for ISI and query execution in smart contracts (#4182)
bridge
anddex
features (#4152)- flattened events (#3068)
- expressions (#4089)
- auto-generated config reference
IROHA_SKIP_WASM_CHECKS
env variable (#4096)warp
noise in logs (#4097)
Security
1.6.0
Here are the changes compared to HL Iroha 1.5 (since 10th May 2022):
Features
- Added iroha-cpp library. This was done according to Hyperledger Mentorship 2022: Implement iroha-cpp library for Hyperledger Iroha 1: #2660 by @andprogrammer (mentors were: @baziorek and @Pawlak00)
- Extended commands AddAssetQuantity and SubtractAssetQuantity with optional parameter "description". This was done according to Hyperledger Mentorship 2023: Iroha 1: Enhance query functionality by introducing supplementary, optional parameters to extend the versatility and customization capabilities of queries within the Hyperledger Iroha 1 blockchain: #4003 by @dominious1 (mentors were: @baziorek , @andprogrammer, @6r1d and @appetrosyan)
- Feature/proposal batches: #2357 by @iceseer
- Feature/db cache multi layer: #2387 by @iceseer
- Feature/single pointer cache ref: #2364 by @iceseer
- Allow configuring max past time of transaction created_time #1776 by @baziorek
Fixes:
- Fix/rdb burrow storage tests #2243 by @iceseer
- Synchronizer fix to store not more than 1000 blocks #2269 by @iceseer
- No cache synchronization on round switch and Send/Recv packets size become 128 Mb #2218 by @iceseer
- Fix/transfer asset permitions #2720 by @iceseer
- Fix/unkai unexpected symbol check #2731 by @iceseer
- Fix/gRPC drop stream bugfix #2749 by @iceseer
- Many devops fixes of CI by @safinsaf : (17 Pull Requests or commits)
- Fix compilation: #2902 by @baziorek
Documentation changes:
- #2446 by @6r1d
- #2448 by @6r1d
- #2448 by @6r1d
- #2475 by @baziorek
- #2739 by @baziorek
- #2739 by @LiraLemur
- #2739 by @cavalryjim
- #1920 by @6r1d
- Added information how to built Iroha 1 on Raspberry Pi 4: #2948 by @baziorek
- Maintainer list update: #2957 by @6r1d
- #2579 by @6r1d
- #3034 by @6r1d
- #3057 by @omahs
- #3070 by @6r1d
- #3079 by @6r1d
- #3086 by @6r1d
- #4055 by @6r1d
What's Changed (all commits)
- [skip ci] Retire inactive maintainers by @ryjones in #2082
- Feature/dops 1651/enable fork build by @safinsaf in #2046
- Fix GHA security issue by @safinsaf in #2155
- [Draft] Iroha forks allow build by @safinsaf in #2019
- Fix security issues, remove build from commit option by @safinsaf in #2189
- Bump protobuf from 3.5.1 to 3.15.0 in /docs/source by @dependabot in #1900
- Update Develop by @safinsaf in #2275
- Bump babel from 2.5.3 to 2.9.1 in /docs/source by @dependabot in #1549
- Fix permissions for windows build job by @safinsaf in #2286
- Update develop from main by @safinsaf in #2300
- Fix status checks by @safinsaf in #2375
- Develop to main v1.6-rc.1 by @iceseer in #2405
- [documentation] #2446: improve issue templates by @6r1d in #2448
- [documentation] #2446 adds a spoiler to issue templates by @6r1d in #2459
- Updates to requirements by @bhaskarvilles in #1964
- Bump mistune from 2.0.1 to 2.0.3 in /docs/source by @dependabot in #2570
- Develop to main by @iceseer in #2739
- Feature/dops 1957/reduce ci runs by @safinsaf in #2755
- Reduce CI runs by @safinsaf in #2759
- Bump protobuf from 3.15.0 to 3.18.3 in /docs/source by @dependabot in #2783
- Brand new bug report template by @AlexStroke in #2812
- Fix/gRPC drop stream bugfix by @iceseer in #2749
- [documentation] Fix #1920 by @6r1d in #2860
- Allow configuring max past time of transaction
created_time
by @baziorek in #1776 - Follow-up: #1776: Configurable max past created hours - changed type by @baziorek in #2901
- Repaired building iroha according to instruction: Added patch file to make sure abseil library is building without changes by @baziorek in #2902
- Add Iroha select label and restore temporary changes by @safinsaf in #2903
- Repaired building iroha according to instruction: Added patch file to repair building of benchmark library: std::numeric_limits requires header by @baziorek in #2906
- Remove cache from main workflow by @safinsaf in #2908
- Implement iroha-lib separate module for Hyperledger Iroha 1 by @andprogrammer in #2660
- Added more descriptive Readme file. by @andprogrammer in #2935
- Changes in
vcpkg/build_iroha_deps.sh
file and documentation to inform users that Iroha 1 is working in Raspberry Pi 4 (from HL main repo) by @baziorek in #2948 - [documentation] Fix #2957, update the MAINTAINERS.md file by @6r1d in #2958
- Bump certifi from 2017.11.5 to 2022.12.7 in /docs/source by @dependabot in #2997
- [documentation] #2579: mention Iroha 2 in Iroha docs by @outoftardis in #3034
- doc: correct typos in
readme.md
by @omahs in #3057 - [documentation] #3070: mention reduced dev activity by @6r1d in #3071
- [documentation] #3079: reintroduce m2r2 dependency by @6r1d in #3080
- [documentation] #3079: update the dependencies further by @6r1d in #3086
- Fix in iroha-cpp library + added example of few transactions (HL branch -> develop) by @baziorek in #3148
- [CI]: New PR template by @appetrosyan in #3322
- Update vcpkg from last release by @safinsaf in #3332
- [fix]: Iroha 1: Mac: Repair benchmark by @baziorek in #3345
- Develop2master 3081 corrections by @baziorek in #3328
- Update MAINTAINERS.md by @6r1d in #3460
- Develop to Master by @safinsaf in #3081
- Bump tornado from 5.1 to 6.3.2 in /docs/source by @dependabot in #3531
- Spelling Mistake by @tarunjainsagar in #3532
- Bump pipreqs from 0.4.9 to 0.4.12 in /docs/source by @dependabot in #3664
- [chore]: #3679 add @DCNick3 to the MAINTAINERS.md by @6r1d in #3680
- Bump pygments from 2.7.4 to 2.15.0 in /docs/source by @dependabot in #3728
- Bump certifi from 2022.12.7 to 2023.7.22 in /docs/source by @dependabot in #3746
- Bump tornado from 6.3.2 to 6.3.3 in /docs/source by @dependabot in #3812
- #3836: Add Bogdan Yamkovoy to MAINTAINERS.md file by @6r1d in #3842
- Trying to fix sfinae problems by reverting vcpkg upgrade (Iroha 1) by @baziorek in #3852
- Trying to upgrade libraries in VCPKG by @baziorek in #3862
- Merge Iroha1
develop
intomain
by @6r1d in #3960 - [documentation] #4055: Add ReadTheDocs config by @6r1d in #4056
- [documentation] #3945: Update MAINTAINERS.md by @6r1d in #3946
- [chore]: #4102 Update issue templates by @6r1d in #4103
- Trying to repair dependency which stopped working (protoc for golang) by @baziorek in https://github...
2.0.0-pre-rc.20 (LTS)
Below is the list of changes that were introduced in RC20 long term-supported release candidate of Iroha 2.
New Features
- Soft fork recovery
- Runtime-definable permissions
- Executor and instruction visitor
- WSV snapshots via the
SnapshotMaker
actor for a fast restart without the block replay - Domain ownership (domains now have the
owned_by
field) - Server-side cursor
fetch_size
for query batching (used to be defined in the client configuration)
Removed Features
- Ursa support was discontinued in favor of
iroha_crypto
. - Expressions were removed as well as the simplified data model API that has become obsolete.
Improvements
- Standardized the layout of blocks: introduced
BlockBuilder
andProofBuilder
, replacedVersionedCommittedBlock
withSignedBlock
, improved block lifecycle and state transitions. - Standardized the layout of transactions: removed the
Versioned
prefix from versioned containers. - Simplified the layout of Iroha 2 schema: every entry is now unique.
2.0.0-pre-rc.19 (lts-candidate)
The latest development in the private DLT.
Includes dynamic permission validators, an improved consensus engine, and various smaller improvements.
2.0.0-pre-rc.6 (LTS)
Long term-supported release candidate. We have reached a level of feature completeness, but want to ensure that things are working properly. This is the first major development milestone and we expect a lot of feedback with the option to re-architect some bits later down the line.
What's Changed
- [refactor]: encapsulate access to data model structures by @mversic in #1984
- [feature] #2048: Add toolchain file by @Arjentix in #2049
- [feature] #1890: Introduce integration tests based on Orillion use-cases by @Arjentix in #2038
- [fix] #1917: Added easy_from_str_impl macro for use with AssetValueType by @SamHSmith in #2054
- [refactor]: Remove unnecessary
&mut
from the API. by @appetrosyan in #2057 - [feature] #2040: Add integration test with transaction execution limit by @Arjentix in #2051
- [feature] #1952: Add a TPS benchmark as a standard for optimizations by @s8sato in #1963
- [fix] #1623: Create a RawGenesisBlockBuilder by @SamHSmith in #2076
- [fix] #2005: Fix
Client::listen_for_events()
not closing WebSocket stream by @Arjentix in #2095 - DOPS-1722: CI for iroha2-longevity-load-rs by @BAStos525 in #2071
- DOPS-1722: CI for iroha2-longevity-load-rs by @BAStos525 in #2070
- [fix] #1845: Non-mintable assets can be minted once only. by @appetrosyan in #2044
- [feature] #2003: Introduce Parity Scale Decoder tool (stable implementation) by @Arjentix in #2080
- [refactor] #1982: encapsulate access to
iroha_crypto
structures by @mversic in #2077 - [refactor] #2109: Make
integration::events::pipeline
test stable by @s8sato in #2110 - [schema] #2108: Add pagination by @appetrosyan in #2107
- [schema] #2114: Sorted collections support in schemas by @mversic in #2115
- [ci]: Bump rust, mold and nightly to 1.60, 1.2.0 and 1.62 respectively. by @appetrosyan in #2129
- [documentation] Add samhsmith to codeowners file by @SamHSmith in #2131
- [fix] #2111: Remove
roles
feature by @Arjentix in #2134 - [fix] #1716: Fix consensus failure with f=0 cases by @s8sato in #2124
- [documentation]: Add QuentinI to codeowners file by @QuentinI in #2138
- [feature] #2099: Add WASM integration test based on Orillion use-case by @Arjentix in #2122
- [feature] #2121: Check keypair is valid when constructed by @mversic in #2130
- [fix] #1640: Generate
genesis.json
and consolidate generation into one tool by @appetrosyan in #2104 - [refactor] #2144: redesign client's http workflow, expose internal api by @0x009922 in #2147
- [documentation] #1991: Add readme to Kura inspector by @outoftardis in #2162
- [ci] #2153: Fix coverage by @s8sato in #2154
- [ci]: Fix deploy pipeline. by @appetrosyan in #2168
- [documentation]: Add Ekaterina to the list of codeowners by @outoftardis in #2171
- [feature]: #1572: Specialized permission tokens by @QuentinI in #2156
- [ci]: Version bump all of the crates. by @appetrosyan in #2174
- [documentation] #2177: Clean up gitchangelog output by @outoftardis in #2178
- [ci] #2153: Fix #2154 by @s8sato in #2166
- [feature] #2050: Add role-related queries. by @appetrosyan in #2126
- [feature] #2105: handle query errors in client by @0x009922 in #2160
- [feature] #2004: Forbid
isize
andusize
from becomingIntoSchema
. by @appetrosyan in #2173 - [documentation] #2113: Document features in Cargo.toml files by @outoftardis in #2180
- [feature] #1883: Remove embedded configuration files. by @appetrosyan in #2183
- [fix] #2150: Use
rustfmt
instead ofcargo fmt
inclient/build.rs
by @Arjentix in #2187 - [fix] #2159: Improve
parity_scale_decoder
tests by @Arjentix in #2184 - [documentation] #2181: Review README by @outoftardis in #2190
- [feature] #2179: Optimise trigger execution by @Arjentix in #2157
- [fix] #1990: Enable peer startup via env vars in the absence of
config.json
by @ilchu in #2188 - [documentation] #2119: Add guidance on how to hot reload Iroha in a Docker container by @outoftardis in #2196
- [feature] #2100: Add query to find all accounts with asset by @Arjentix in #2197
- I2 dco by @appetrosyan in #2209
- [feature] #2056: Add a derive proc macro crate for AssetValueType enum by @ilchu in #2213
- [fix] #2215: Make nightly optional for building Iroha. by @appetrosyan in #2217
- [documentation] #1280: Document Iroha metrics by @outoftardis in #2195
- [feature] #2186: Add transfer instructions for all asset types by @appetrosyan in #2185
- [documentation] #2192: Review contributing guidelines by @outoftardis in #2219
- [documentation] #2193: Update benchmarks documentation by @outoftardis in #2230
- [refactor] #2145: refactor client's
WebSocket
side, extract pure data logic by @0x009922 in #2146 - [documentation] #2193: Update Kagami documentation by @outoftardis in #2220
- [fix] #2170: Fixes build in docker container on M1 machines by @pesterev in #2237
- [feature] #2103: support querying for blocks and transactions by @QuentinI in #2210
- [feature] #1413: Add API version endpoint by @ilchu in #2235
- [refactor]: Move
TriggerSet
todata_model
by @Arjentix in #2229 - [ci] #2222: Split tests by whether it involves coverage or not by @s8sato in #2223
- [documentation] #2193: Update Parity Scale Decoder Tool documentation by @outoftardis in #2224
- [fix] #2232: Make Iroha print meaningful message when genesis has too many isi by @Arjentix in #2239
- [feature] #1149: Restrict block number to 1 million per dir by @SamHSmith in #2194
- [documentation] #2193: Update README for wasm crate by @outoftardis in #2240
- [documentation] #2193: Update README for macro crate by @outoftardis in #2236
- [fix] #1149: Remove nocheckin code by @SamHSmith in #2248
- [documentation] #2193: Update Iroha CLI documentation by @outoftardis in #2244
- [documentation] #2193: Update Iroha Client and Iroha CLI Client documentation by @outoftardis in #2234
- [documentation]: Flakyness report by @appetrosyan in #2246
- [feature] #2161: generate FFI functions for
data_model
by @mversic in #2211 - [documentation]: Update information on git hooks by @outoftardis in #2254
- [feature] #1926: Add signal handling and graceful shutdown by @pesterev in #2251
- [feature] #2125: Add FindAssetDefinitionById query by @pesterev in #2265
- [test] #2272: Add tests for 'FindAssetDefinitionById' query by @pesterev in #2273
- [feature] #2257: Revoke emits RoleRevoked event by @omkar-mohanty in #2264
- [ci]: Remove unnecessary coverage reporting. by @appetrosyan in #2271
- [feature] #2132: Add
endpointN
proc macro by @ilchu in #2258 - [fix] #2282: improve FFI derives from getset implementation by @mversic in #2283
- [feature] #1638:
configuration
return doc subtree by @ilchu in #2291 - [ci]: Add @ilchu to codeowners by @ilchu in https://github.com/...
1.5.0
Here are the changes compared to HL Iroha 1.4:
Features
RocksDB Storage Implementation for Burrow #2065
Removed proposal_delay timeout (now is set automatically as 2 * proposal_creation_timeout
based on the calculations of the optimal value of the proposal delay) #1847
Performance Improvement
Removed separate MST endpoint: MST module is now located in the Ordering Service module to improve the performance #1927
Proposal request optimization #1869 #1971
Documentation
Documentation on Healthcheck Endpoint, Iroha Swarm, RocksDB and Postgres comparison and an example of good migration practice #1935
Documentation build fix #2069
Infrastructure
Removed Jenkins-related files as a part of moving CI to GitHub Actions #1921
More changes in CI can be seen here
Docker image existence flag fix #1901