Skip to content

@GalRogozinski GalRogozinski released this Aug 12, 2019 · 27 commits to dev since this release

Changes

  • Greatly improved synchronization speed. Nodes now sync around 30 times faster than before. (#1543, #1530, #1545)
  • More efficient and faster Cumulative weight (CW) calculation. (#1451)
  • Removed the tip solidifier code. Tip solidifier has been disabled by default in previous version of IRI. If you were still using the tip solidifier, remove the configuration parameter from your configuration file. (#1547)
  • We check the database for existence of the spent address records instead of looking for .sst files. (#1540)
  • Nodes do not execute getTransactionsToApprove, getBalances, and getInclusionStates calls unless they are synchronized. Previously, calling getTransactionsToApprove on an unsychnronized node could hinder the synchronization process.

Other changes

  • Change: Fixed pmd test errors (#1526)
  • Change: Docker network option (#1496)
  • Change: Update undertow and jackson (#1511)
  • Fix: Changed TX requester removal log to Debug (#1515)
  • Fix: Update jackson-databind version to 2.9.9.1 (#1534)
  • Fix: Reconnecting to a neighbor that we added did not work correctly in certain scenarios. (#1506)
Assets 5

@GalRogozinski GalRogozinski released this Jul 10, 2019

Upgrade instructions

Please leave some time for your neighbors to upgrade as well. Connection will only be established with neighbors who have upgraded to >= 1.8.0. If you are not receiving traffic from your neighbors within a day, restart your node. Your neighbors may have upgraded after a longer period of time and restarting your node should allow the node to re-establish the connection.

Changes

  • Support for UDP connections has been removed. Please re-add your neighbors through the TCP protocol instead.

Configuration changes

The following configuration parameters have been removed:

  • UDP_RECEIVER_PORT
  • TCP_RECEIVER_PORT
  • MAX_PEERS
  • DNS_REFRESHER_ENABLED
  • DNS_RESOLUTION_ENABLED

The following configuration parameters have been added:

  • NEIGHBORING_SOCKET_ADDRESS - defines the socket address to bind the TCP socket to.
  • NEIGHBORING_SOCKET_PORT - defines the port of the TCP socket to use.
  • RECONNECT_ATTEMPT_INTERVAL_SECONDS - defines the interval at which to try to reconnect/disconnect wanted neighbors.
  • AUTO_TETHERING_ENABLED - controls auto-tethering, this was previously controlled via TESTNET true, default is false (also in testnet mode).
  • MAX_NEIGHBORS - rename of MAX_PEERS, defines the max number of connected neighbor. Default 5.

Other changes

  • It is now possible to connect to multiple neighbors originating from the same IP address, as the identity of a node is its IP address + server socket port
  • BCTCurl is used within the transaction processing pipeline which batches up to 64 transactions to hash them at the same time.
  • Neighbors are now only added after their domain name could be resolved. Reconnects are done in the RECONNECT_ATTEMPT_INTERVAL_SECONDS defined interval. Neighbors to which the connection was closed, are put into "reconnect pool" until they are explicitly removed by removeNeighbors.
  • Gossiping transaction messages are now dynamic and take 341–1650 bytes of data.
  • The requested transaction hash of a transaction gossip packet is now fixed to 49 bytes, no matter in what mode the node runs in.
  • The getNeighbors API call now also returns the domain with which the neighbor was added and whether the neighbor is actually connected.
  • A neighbor communicates his used coordinator address in the initial handshake packet, which if it doesn't match the node's own used coordinator address, will drop the connection. This prevents cross-pollination of nodes running in different networks. The Nodes will also communicate their used minimum weight magnitude, which in case they don't match, will also drop the connection.
  • Fix: set arrival time in millis (not seconds) (#766)
  • #1376
  • #1377
  • #1380
  • #1381
  • #1383
  • #1379
  • #1388
Assets 5
Pre-release
Pre-release

@GalRogozinski GalRogozinski released this Jul 8, 2019

Note that this is only for Devnet. It should not run on Mainnet

Upgrade instructions

Please leave some time for your neighbors to upgrade as well. Connection will only be established with neighbors who have upgraded to >= 1.8.0. If you are not receiving traffic from your neighbors within a day, restart your node. Your neighbors may have upgraded after a longer period of time and restarting your node should allow the node to re-establish the connection.

Changes

  • Support for UDP connections has been removed. Please re-add your neighbors through the TCP protocol instead.

Configuration changes

The following configuration parameters have been removed:

  • UDP_RECEIVER_PORT
  • TCP_RECEIVER_PORT
  • MAX_PEERS
  • DNS_REFRESHER_ENABLED
  • DNS_RESOLUTION_ENABLED

The following configuration parameters have been added:

  • NEIGHBORING_SOCKET_ADDRESS - defines the socket address to bind the TCP socket to.
  • NEIGHBORING_SOCKET_PORT - defines the port of the TCP socket to use.
  • RECONNECT_ATTEMPT_INTERVAL_SECONDS - defines the interval at which to try to reconnect/disconnect wanted neighbors.
  • AUTO_TETHERING_ENABLED - controls auto-tethering, this was previously controlled via TESTNET true, default is false (also in testnet mode).
  • MAX_NEIGHBORS - rename of MAX_PEERS, defines the max number of connected neighbor

Other changes

  • It is now possible to connect to multiple neighbors originating from the same IP address, as the identity of a node is its IP address + server socket port
  • BCTCurl is used within the transaction processing pipeline which batches up to 64 transactions to hash them at the same time.
  • Neighbors are now only added after their domain name could be resolved. Reconnects are done in the RECONNECT_ATTEMPT_INTERVAL_SECONDS defined interval. Neighbors to which the connection was closed, are put into "reconnect pool" until they are explicitly removed by removeNeighbors.
  • Gossiping transaction messages are now dynamic and take 341–1650 bytes of data.
  • The requested transaction hash of a transaction gossip packet is now fixed to 49 bytes, no matter in what mode the node runs in.
  • The getNeighbors API call now also returns the domain with which the neighbor was added and whether the neighbor is actually connected.
  • A neighbor communicates his used coordinator address in the initial handshake packet, which if it doesn't match the node's own used coordinator address, will drop the connection. This prevents cross-pollination of nodes running in different networks. The Nodes will also communicate their used minimum weight magnitude, which in case they don't match, will also drop the connection.
  • Fix: set arrival time in millis (not seconds) (#766)
  • #1376
  • #1377
  • #1380
  • #1381
  • #1383
  • #1379
  • #1388
Assets 5

@paulhandy paulhandy released this Jun 17, 2019

Breaking changes

  • All boolean flags now consistently require explicitly passing a true or false value.

Feature changes

  • Transaction pruning is now off by default. If you want to limit the transaction history stored on your node, please use the LOCAL_SNAPSHOTS_PRUNING_ENABLED flag.
  • Nodes now time out after a --tip-selection-timeout (default 60 seconds) when performing tip selection. This is to avoid nodes stalling when tip selection is taking too long a time. You can change this using the TIP_SELECTION_TIMEOUT_SEC config to a value that works for you.

All changes

  • Fix: Update solidity of transactions from past to present in TransactionValidator #1492
  • Feature: adds a tip-selection timeout mechanism #1404
  • Print out line number in log info #1362
  • Prepare IRI to have its version injected by CI #1359
  • Update jackson to version 2.9.8 #1358
  • Fix: log inconsistent addresses in debug mode #1347
  • Javadoc: Changed braklines to paragraphs #1457
  • Fix: recent seen transactions digest #1453
  • The current xxHash implementation hashes the whole packet #1438
  • Fix: fixes spent states of addresses not getting persisted on tx pruning #1437
  • ciglue.sh IXIs path relative to python-regression base folder #1433
  • Python-reg-test fix machine2 #1416
  • Fix: fetch correct arrival time while traversing dags for orphaned transactions. #1407
  • Change: Made API class easier to work with #1374
  • Test: Local Snapshot unit tests #1364
  • Test: Updated TransactionTestUtils, its usage, and javadoc #1363
  • Readme links fix #1355
  • Use xxHash instead of SHA-256 on incoming transaction hashes cache #1326
  • Change: Do not request one transaction at a time when checking for solidity #1311
  • Fix: Boolean flag consistent usage #1295
  • Feature: Doclet annotations #1155
Assets 6

@GalRogozinski GalRogozinski released this Apr 10, 2019

  • refactor milestone signature parameters to be configurable (#1322)
  • migration from legacy coordinator to compass

Upgrade instructions

  • If you want to keep the current database, you need to delete the mainnet.snapshot.* files from the location of your .JAR file, or from the path specified in the LOCAL_SNAPSHOTS_BASE_PATH configuration parameter (if you specified it) before you start the node.
Assets 5

@GalRogozinski GalRogozinski released this Feb 21, 2019

  • Fix: Db exists() method optimization
  • Fix: Do not persist pruner state (#1342)
  • Fix: Reduce db access and cpu usage needed to persist spent addresses
  • Fix: Added a NULL_HASH check for genesis transaction (#1309)
  • Feature: Fresh transactions to request (#1316)
  • Fix: missing user-agent header in cors (#1319)
  • Fix: Batch process spent addresses to avoid out of memory issues (#1314)
  • Fix: added a buffer to LSManager (#1286)
  • Fix: test existence of spent addresses db do not point to correct folder (#1305)
  • Change: Convert from trytes to asciiString (#1302)
  • Documentation: Fixed and added javadoc comments for existing classes (#1026)
  • Fix: Creates rest endpoint for iotaconfig related settings as suggested (#1200)
  • Fix: make storeMessage store transactions (#1186)
  • Change: add a plugin to create reproducible builds. (#1194)
  • Feature: Add configurable variables for spent addresses DB (#1274)
  • Fix: Posting invalid json to IRI will result in detailed error message (#1202)
  • Fix: dns reverse resolving issue for neighbors that are added with their IP. (#1255)
Assets 5

@paulhandy paulhandy released this Jan 11, 2019

How do I upgrade?

If you weren't operating an RC (release candidate) node of IRI, you can just replace iri.jar with the latest version and then restart the node normally.

Upgrading from RC nodes

If you were running an RC node different than RC 15, we recommend removing your existing database entirely and starting with a database produced by IRI 1.5.6. You can download the latest 1.5.6 database here:
https://dbfiles.iota.org/mainnet/1.5.6/db-latest.tar

Release notes

  • Feat: added config variables for local snapshots (#981)
  • Feat: added a generic helper class for dag traversal (#982)
  • Feat: renamed Milestone to MilestoneTracker (#983)
  • Feat: Introducing the GarbageCollector of local snapshots (#995)
  • Feat: Fixes + Improvements for IRI that are required for local snapshots (#1095)
  • Feat: Introducing several executor services for IRI (#1131)
  • Feat: Making IRI use the initialSnapshot and the solidEntryPoints (#1135)
  • MilestoneTracker and LedgerValidator rework (#1151)
  • Activate Local Snapshots (#1172)
  • Introducing a repair mechanism for corruptions in the ledger database (#1174)
  • Introducing a parameter validation for the local snapshot config parameters (#1175)
  • Introducing a dedicated Transaction Requester Background Worker (#1178)
  • Fix: Removed intertwined locks to prevent deadlocks (#1195)
  • Feat: Added an option to fast forward the ledger state (#1196)
  • Perf: Massively improved the performance of the replayMilestones method (#1197)
  • Refactor: Removed grace time from solid entry points generation (#1199)
  • Increase rescan performance of old milestones after IRI restart (#1204)
  • Refactor: Removed the old unused classes that got replaced by the local snapshots implementation (#1205)
  • Refactor: made boolean parameters receive a value (#1224)
  • Feat: Disable snapshot logic completely if disabled in the config (#1228)
  • Fix: Node requested old transactions forever (#1235)
  • Feat: Write snapshot files to temp files first (#1256)
  • Fix first() calls in view models (#1257)
  • Spentaddresses are persisted upon pruning (#1258)
  • Spent Addresses should be persisted in a seperate db instance (#1263)
  • Report local snapshot node transaction history via getNodeInfo (#1264)
  • Don't start node if local snapshot is loaded but there is no spent ad… (#1266)
  • Change the minimum value for LOCAL_SNAPSHOTS_PRUNING_DELAY (#1267)
Assets 5

@paulhandy paulhandy released this Dec 23, 2018

  • Global Snapshot (#1250)
  • Refactor: refactored DedicatedScheduledExecutorService
  • Refactor: refactored AsyncTransactionPruner
  • Refactor: refactored EntryPointSelectorImpl
  • Refactor: refactored CumulativeWeightCalculator
  • Refactor: refactored the SnapshotServiceImpl
  • Refactor: refactored the SnapshotProviderImpl
  • Refactor: refactored the LocalSnapshotManagerImpl
  • Fix remove source port check (#1156)
  • Documented IRI and Iota (#1150)
  • Added documentation for networking
  • Refactor: removed the repair routines for db inconsistencies
  • Document dto (#1143)
  • Added javadoc to API (#1140)
  • Docs: fixed erroneous javadocs
  • Feat: new MilestoneTracker
  • Docs: fixed a problem with missing parameters in the docs
  • split issues template to bug report and feature request (#1149)
  • Transaction Validator Documentation (#1142)
  • Document Bundle Validator (#1125)
  • Document zmq-messageQ (#1141)
  • Changed generic to always Transaction (#1129)
  • Document crypto package (#1139)
  • document converter (#1130)
  • change hash package name to crypto (#1136)
  • Fix: removed spamming logger
  • Refactor: removed debug messages
  • Feat: making IRI use the initialSnapshot and the solidEntryPoints
  • Refactor: refactored changes according to codacy
  • Feat: introducing several executor services for IRI
  • add "numberOfStaleTransactions" to getNeighbors API call (#1121)
  • Documentation explanation in styleguide (#1120)
  • update regression tests
  • add 'coordinatorAddress' to 'getNodeInfo' response.
  • Added PearlDiver config (PoW threads) (#1017)
  • Obtain features of a node (#1062)
  • Refactor: changed indentation of IS_SOLID_BITMASK
  • Refactor: correct name for the isMilestone flag
  • Refactor: removed the requester thread in favor of a separate PR
  • Refactor: changed indentation of isTransactionRequested
  • Refactor: removed wrong * 4
  • Regression ciglue.sh: avoid git fatal error when cloning TIAB (#1104)
  • Return early if validating a bundle that has a known invalid status (#1098)
  • Fixed wrong Hash objects used
  • Fix: fixed visibility of the Status in the MilestoneTracker
  • Feat: added hashcode to the Messages in IntervallLogger
  • Feat: added the isSnapshot accessors
  • Feat: fixed a few minor issues in IRI + some other improvements
  • Feat: added the snapshot package
  • Add Validation Test (#55)
  • Interrupt wait time fix (#54)
  • add code coverage to regression tests
  • use mvn to fetch version
  • Fix: fixed ThreadUtils to use Map instead of HashMap
  • Add a Java Styleguide to IRI (#1055)
  • fix code coverage tool d/l (#1085)
  • javadocs param fix (#1081)
  • update undertow to version 1.4.26 (#1083)
  • Update DB for stitching tests (#60)
  • Gawk -> Awk
  • Revert "Kubectl extracted namespace could be empty"
  • Kubectl extracted namespace could be empty
  • Force TIAB virtualenv to Python2
  • add reply to request to "recentSeenBytes" tx cache in order to skip redundant processing.
  • extract byte digest to a function.
  • Update DB for stitching tests
  • Refactor: refactored the transactionpruner
  • Enable validation of milestones with additional hash modes and security levels (#1041)
  • Run regression tests from local (#58)
  • add formatting files
  • Fix missing responses placement for interrupt test (#53)
  • rename addresses to addressList
  • Move variables to world environment (#50)
  • fix milestone -> milestoneTracker
Assets 5

@GalRogozinski GalRogozinski released this Oct 11, 2018 · 713 commits to dev since this release

- Javadoc on API command methods (#943)
- Parse case insensitive boolean text (#966)
- re-enable `--remote` flag - opens API interface to all hosts (#953)
- fix generics in RocksDbPersistenceProvider (#956)
- Fix milestone start index default value (#941)
- Enable batch deletion in rocksDB (#939)
- Refactor Configuration (#910)
- Some TransactionValidator fixes regarding solidity (#913)
- Remove checkSolidity mocks (#908)
- Fix: TransactionValidator instance based / TransactionRequester fixed (#914)
- Changed Dockerfile to source java and maven from precompiled docker containers. (#929)
- Fix grammar in API responses (#884)
- Fix error in log statement (#829)
- Move sleep inside spawnSolidTransactionsPropagation loop (#911)
- Fix solidity propagation from bottom to top (#907)
Assets 5

@alon-e alon-e released this Sep 17, 2018 · 728 commits to master since this release

  • Update snapshot to 2018-09-17 17:00 UTC (#989)
Assets 5
You can’t perform that action at this time.