Protocol
IOTA Protocol Version in this release: 10
#7722: Enable the new sequencer logic on Testnet and Mainnet.
The new logic affects the order of execution of shared object
transactions within consensus commits. See IIP
3
for more details.
#7797: Increase the committee size to 80 on all networks
#7808: Enable new consensus features on the mainnet such as
round prober, distributed vote scoring, new commit rule and garbage
collection
#7811: Batching blocks when a block fetching request is
received
#7991: Child objects mutations will not be counted as modified
if the owner, value and type of the child objects stays the same between
the start and end of a transaction.
#8046: Adds a new protocol config options to enable additional
signature and linkage checks.
Nodes (Validators and Full nodes)
#7341: Added error categorization to
the error metrics and added new metrics
(validator_service_client_id_source_config_mismatch
,
traffic_control_tally_error_types
)
#7510: Add support for TLS connections
with self-signed cert on validator gRPC interface.
#7553: - Execution cache sizes can now
be adjusted in the node config
#7831: - Nodes now download only the missing formal snapshot files instead
of fetching the entire snapshot.
#7867: - Add backpressure to the
WritebackCache
#8012: - Add metrics:
- spam_client_threshold
- error_client_threshold
- spam_proxied_client_threshold
- error_proxied_client_threshold
Indexer
#7360: Fixes system-state values in epoch tables.
#7532: the iota-data-ingestion-core
supports reading
checkpoints from hybrid historical storages. More information and
examples on how to use the new feature can be found in #7424.
#7603: Adds a new RunBackfill
CLI command to backfill DB
tables.
#7995: Adds a new column epochs.first_tx_sequence_number
and
repurposes epoch.epoch_total_transactions
to
epoch.network_total_transactions
. This decouples epoch info from the
checkpoints table, and eliminates db queries while extracting the data
to persist. On the web interfaces (JSON-RPC, GraphQL) the view on the
epoch data remains intact.
#7133: Introduces a new tx_wrapped_or_deleted_objects
table as
part of a new database migration. Adds a
TransactionFilterV2::WrappedOrDeletedObject(object_id)
variant to
filter transactions that either wrapped
, created and then wrapped
,
deleted
, or unwrapped and then deleted
the specified object.
Introduces the new IndexerApi::query_transaction_blocks_v2
JSON-RPC
API.
🚨🚨🚨Indexer deployments🚨🚨🚨: this release includes a new Indexer database table, tx_wrapped_or_deleted_objects
, which requires backfilling. Please follow the instructions provided here: Backfilling Instructions
In case any errors appear, please refer to the Error Handling section of the documentation.
JSON-RPC
#7766: vector<u8>
values for transaction inputs are parsed as
raw vectors into the rpc response. Previously vectors with valid utf-8
codepoints were parsed as strings, which was error prone.
#7133: Introduces a new
TransactionFilterV2::WrappedOrDeletedObject(object_id)
variant to
filter transactions that either wrapped
, created and then wrapped
,
deleted
, or unwrapped and then deleted
the specified object.
Introduces the new IndexerApi::query_transaction_blocks_v2
JSON-RPC
API.
GraphQL
#7564: Rename domain
to name
for IOTA-Names queries.
#7133: Introduces a new
TransactionFilter::WrappedOrDeletedObject(object_id)
variant to filter
transactions that either wrapped
, created and then wrapped
,
deleted
, or unwrapped and then deleted
the specified object.
CLI
#7521: Added the -c
short flag for the iota client upgrade
command to pass the upgrade capability.
#7564: Rename domain
to name
in iota name
commands.
#7582: Add support for IOTA-Names address resolution in command
arguments.
#6777: Add --sender
option to iota client call
and iota client ptb
commands, allowing users to override the default sender address
when creating transactions. This enables compatibility with multisig
workflows that require specifying a custom sender.
#7788: Fix the iota name availability
command by relying on entry
existence and not target address set.
#7704: Introduces a new keystore v2 format. If a keystore v1 file
(iota.keystore
+ iota.aliases
) is found then they are automatically
migrated while keeping a copy of the old data named as
(iota.keystore.migrated
+ iota.aliases.migrated
).
#7812: Fixed iota keytool multi-sig-combine-partial-sig
output to
display multisigParsed details instead of a base64 string (still
available from multisigSerialized field)
#7806: Support the --sender
flag for all relevant IOTA-Names CLI
commands.
#7842: Allow 0x0 address in Move.toml for package upgrades.
#7813: don't select coins with less than 0.009 IOTA for gas payments
in iota name
commands
#7620: Add support for using a Ledger hardware wallet for all CLI
signing operations. Use iota keytool import-ledger
to import an
account.
#7881: Added iota client serialized-tx
, iota client serialized-tx-kind
commands and added support for gas sponsoring with
--gas-sponsor <address>
and --tx-digest
to client tx commands
#6647: Make iota client split-coin
work with a single gas coin
#7918: Simplify the pay-iota
command by making the input coins
optional.
#7958: Added --gas-price
and --gas-sponsor
flags to iota client ptb
. Also added support to accept multiple gas coins with --gas-coins
#7950: add default network environments { mainnet, testnet, devnet,
localnet } to client.yaml
#8003: Removed obsolete prompt from iota client
if no
client.yaml
existed
Rust SDK
#7429: Added ClientBuilder::tls_config()
to allow custom
rustls
configurations. This is essential for platforms like Android
that require special TLS initialization (e.g., using
rustls-platform-verifier
).
#7840: Adds support for custom user defined headers in
IotaClientBuilder
. You can define custom headers through the
IotaClientBuilder::custom_headers
function to be added right before
building.
#7629: Add query_transaction_blocks_v2
and
get_transactions_stream_v2
to support TransactionFilterV2
.