Skip to content

Releases: hyperledger-iroha/iroha

2.0.0-rc.1.0

27 Jan 17:09
13d953d
Compare
Choose a tag to compare

Added

  • implement query projections (#5242)
  • use persistent executor (#5082)
  • add listen timeouts to iroha cli (#5241)
  • add /peers API endpoint to torii (#5235)
  • address agnostic p2p (#5176)
  • improve multisig utility and usability (#5027)
  • protect BasicAuth::password from being printed (#5195)
  • sort descending in FindTransactions query (#5190)
  • introduce block header into every smart contract execution context (#5151)
  • dynamic commit time based on view change index (#4957)
  • define default permission set (#5075)
  • add implementation of Niche for Option<Box<R>> (#5094)
  • transaction and block predicates (#5025)
  • report amount of remaining items in query (#5016)
  • bounded discrete time (#4928)
  • don't validate transactions inside WASM (#4995)
  • add missing mathematical operations to Numeric (#4976)
  • validate block sync messages (#4965)
  • query filters (#4833)

Changed

  • simplify peer id parsing (#5228)
  • move transaction error out of block payload (#5118)
  • rename JsonString to Json (#5154)
  • add client entity to smart contracts (#5073)
  • leader as transaction ordering service (#4967)
  • directly provide payload to WASM entrypoints (#5113)
  • make kura drop old blocks from memory (#5103)
  • use ConstVec for instructions in Executable (#5096)
  • gossip txs at most once (#5079)
  • reduce memory usage of CommittedTransaction (#5089)
  • make query cursor errors more specific (#5086)
  • make PublicKey decoding lazy inside WASM (#5048)
  • reorganize crates (#4970)
  • introduce FindTriggers query, remove FindTriggerById (#5040)
  • dont depend on signatures for update (#5039)
  • change parameters format in genesis.json (#5020)
  • only send current and previous view change proof (#4929)
  • disable sending message when not ready to prevent busy loop (#5032)
  • move total asset quantity to asset definition (#5029)
  • sign only block's header, not the whole payload (#5000)
  • use HashOf<BlockHeader> as the type of the block hash (#4998)
  • simplify /health and /api_version (#4960)
  • unnest wasm samples from client, exclude it from workspace (#4863)
  • rename configs to defaults, remove swarm (#4862)

Fixed

  • flatten inner role in json (#5198)
  • fix cargo audit warnings (#5183)
  • add range check to signature index (#5157)
  • fix model macro example in docs (#5149)
  • close ws properly in blocks/events stream (#5101)
  • broken trusted peers check (#5121)
  • check that next block has height +1 (#5111)
  • fix timestamp of genesis block (#5098)
  • fix iroha_genesis compilation without transparent_api feature (#5056)
  • serialize WASM code for snapshots (#5009)
  • correctly handle replace_top_block (#4870)
  • fix cloning of executor (#4955)
  • display more error details (#4973)
  • use GET for blocks stream (#4990)
  • improve queue transactions handling (#4947)
  • prevent redundant blocksync block messages (#4909)
  • prevent deadlock on simultaneous sending large message (#4948)
  • remove expired transaction from cache (#4922)
  • fix torii url with path (#4903)

Removed

  • remove module-based api from client (#5184)
  • remove riffle_iter (#5181)
  • remove unused dependencies (#5173)
  • remove max prefix from blocks_in_memory (#5145)
  • remove consensus estimation (#5116)
  • remove event_recommendations from block (#4932)

2.0.0-pre-rc.22.2

30 Aug 12:53
Compare
Choose a tag to compare

Added

  • bounded discrete time (#4928)
  • add missing mathematical operations to Numeric (#4976)

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

30 Jul 15:40
Compare
Choose a tag to compare

Fixed

  • added jq to the docker image

2.0.0-pre-rc.22.0

26 Jul 09:15
29f1a48
Compare
Choose a tag to compare

Added

  • specify on-chain parameters explicitly in genesis (#4812)
  • allow turbofish with multiple Instructions (#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 of SignedTransaction 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 with dlmalloc (#4857)
  • rename type_ to type in schema (#4855)
  • replace Duration with u64 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 to Permission (#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 to parity_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 and dbg 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 for torii_url (#4601) (#4617)
  • remove serde(flatten) from SetKeyValue/RemoveKeyValue (#4547)
  • trigger set is correctly serialized
  • revoke removed PermissionTokens on Upgrade<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 from Validate (#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

03 May 08:16
Compare
Choose a tag to compare
2.0.0-pre-rc.21.1 Pre-release
Pre-release

Fixed

  • add RawGenesisBlock to schema (#4538)
  • remove nested option on TransactionEventFilter::block_height (#4538)

2.0.0-pre-rc.21

19 Apr 11:04
d7e7cca
Compare
Choose a tag to compare
2.0.0-pre-rc.21 Pre-release
Pre-release

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 and Executor 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 and Filter non-generic types (#4375)
  • improve event filtering API with builder pattern (#3068)
  • unify various event filter APIs, introduce a fluent builder API
  • rename FilterBox into EventFilterBox
  • rename TriggeringFilterBox into TriggeringEventFilterBox
  • 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 through iroha_client (#4147)
  • export iroha_crypto through iroha_client (#4149)
  • export data_model through iroha_client (#4081)
  • remove openssl-sys dependency from iroha_crypto and introduce configurable tls backends to iroha_client (#3422)
  • replace unmaintained EOF hyperledger/ursa with in-house solution iroha_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 for ChaCha20Poly1305 (#4395)
  • start console when tokio-console is enabled (#4377)
  • separate each item with \n and recursively create parent directories for dev-telemetry file logs
  • prevent account registration without signatures (#4212)
  • key pair generation is now infallible (#4283)
  • stop encoding X25519 keys as Ed25519 (#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 and dex features (#4152)
  • flattened events (#3068)
  • expressions (#4089)
  • auto-generated config reference
  • IROHA_SKIP_WASM_CHECKS env variable (#4096)
  • warp noise in logs (#4097)

Security

  • prevent pub key spoofing in p2p (#4065)
  • ensure the secp256k1 signatures coming out of OpenSSL are normalized (#4155)

1.6.0

05 Apr 11:16
8586246
Compare
Choose a tag to compare

Here are the changes compared to HL Iroha 1.5 (since 10th May 2022):

Features

  1. 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)
  2. 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)
  3. Feature/proposal batches: #2357 by @iceseer
  4. Feature/db cache multi layer: #2387 by @iceseer
  5. Feature/single pointer cache ref: #2364 by @iceseer
  6. Allow configuring max past time of transaction created_time #1776 by @baziorek

Fixes:

  1. Fix/rdb burrow storage tests #2243 by @iceseer
  2. Synchronizer fix to store not more than 1000 blocks #2269 by @iceseer
  3. No cache synchronization on round switch and Send/Recv packets size become 128 Mb #2218 by @iceseer
  4. Fix/transfer asset permitions #2720 by @iceseer
  5. Fix/unkai unexpected symbol check #2731 by @iceseer
  6. Fix/gRPC drop stream bugfix #2749 by @iceseer
  7. Many devops fixes of CI by @safinsaf : (17 Pull Requests or commits)
  8. Fix compilation: #2902 by @baziorek

Documentation changes:

  1. #2446 by @6r1d
  2. #2448 by @6r1d
  3. #2448 by @6r1d
  4. #2475 by @baziorek
  5. #2739 by @baziorek
  6. #2739 by @LiraLemur
  7. #2739 by @cavalryjim
  8. #1920 by @6r1d
  9. Added information how to built Iroha 1 on Raspberry Pi 4: #2948 by @baziorek
  10. Maintainer list update: #2957 by @6r1d
  11. #2579 by @6r1d
  12. #3034 by @6r1d
  13. #3057 by @omahs
  14. #3070 by @6r1d
  15. #3079 by @6r1d
  16. #3086 by @6r1d
  17. #4055 by @6r1d

What's Changed (all commits)


Read more

2.0.0-pre-rc.20 (LTS)

14 Nov 10:38
f9f5ede
Compare
Choose a tag to compare
2.0.0-pre-rc.20 (LTS) Pre-release
Pre-release

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 and ProofBuilder, replaced VersionedCommittedBlock with SignedBlock, 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)

15 Aug 08:07
Compare
Choose a tag to compare
Pre-release

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)

07 Jul 06:49
Compare
Choose a tag to compare
2.0.0-pre-rc.6 (LTS) Pre-release
Pre-release

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

Read more