Skip to content

Releases: Qortal/qortal

v3.1.0

14 Feb 20:10
Compare
Choose a tag to compare

Changes in this release:

Wallets:

  • Calculate wallet balances from the transactions (ElectrumX) rather than using bitcoinj. Should fix incorrect balance issue.
  • Cache transaction list and balances for 2 minutes.
  • Added more LTC Electrum peers.
  • Increased TX_CACHE_SIZE from 200 to 1000, to speed up loading times on large wallets.
  • Move on to another server if one ElectrumX peer takes more than 500ms on average to respond.
  • Allow 3 retries for getTransaction() and getAddressTransactions() requests.
  • Removed unusably slow electrum peer.
  • Added defensiveness in convertToSimpleTransaction()

Names:

  • Implemented REGISTER_NAME transaction fee increase from 0.001 to 5 QORT (average value based on community vote).
  • Name registration fee increase timestamp set to Sunday, 20 February 2022 16:00:00 UTC
  • Fixed bug caused by improper handling of UPDATE_NAME transactions, similar to commit d16663f.
  • Rewrite of fetchAllTransactionsInvolvingName() to reduce resource usage.
  • Added indexes, to make looking up name transactions by name around 5x faster.

APIs:

  • Added GET /transaction/unitfee API endpoint, to obtain the unit fee for a transaction type
  • Added POST /transaction/fee API endpoint, to return the recommended total fee for the supplied transaction data.
  • Added "async" and "attempts" parameters to GET /arbitrary/{service}/{name}* endpoints.

General:

  • Added support for different fees per transaction type.
  • Increased MAX_ACCOUNT_COUNT in GetOnlineAccountsMessage from 1000 to 5000.
  • minAccountLevelForBlockSubmissions reduced from 6 to 5
  • Fixed occasional file conflict when building resources.
  • Reduced DOGE fees (thanks to @QuickMythril)
  • Added Dockerfile to project (thanks to @otaku)
  • Added blockchain lock logging.
  • Fixed occasional ConcurrentModificationException in the block archive reader.
  • Attempt to acquire a blockchain lock (for up to 5 seconds) before shutting down the repository.
  • Check for null IP address before notifying of an external IP update.
  • Increased minPeerConnectionTime and maxPeerConnectionTime, to reduce the chances of forced connections during relays.
  • Updated thread names
  • Added more bootstrap hosts

Transactions:

  • Introduced incoming transactions queue, to improve efficiency.
  • Added invalidUnconfirmedTransactions map, which reduces requests for known invalid transactions.
  • Break out of incoming transactions processing loop if we need to sync.

Synchronizer:

  • Moved synchronizer to its own thread, again to improve efficiency
  • Retry each synchronization attempt until a blockchain lock can be acquired
  • Prioritize syncing over transaction importing.

Block Minter:

  • Delay/avoid an unnecessary block submission if one of our peers already has a higher weight chain.

QDN:

  • Fixed bug in cache clearing logic, which was often preventing resource updates from being detected.
  • Increased builder threads from 1 to 5.
  • Increased RELAY_REQUEST_MAX_HOPS from 3 to 4, in an attempt to reach more peers.
  • Increased ARBITRARY_RELAY_TIMEOUT from 30 to 60 seconds, to improve relays.
  • Added "priority" property to build queue items. Websites are higher priority than avatars.
  • Introduced 5 threads to retry failed file requests.
  • Rework of arbitraryRelayMap to keep track of multiple responses.
  • Don't remove from the relay map after a file is requested, as it may be needed by other peers.
  • Fixed metadata file bug in ArbitraryDataFile.chunkExists()
  • Try to speed up the shutdown process of the cleanup manager.
  • Improved logging when fetching data files.
  • Improved file requests with direct peer connections
  • Include "localChunkCount" and "totalChunkCount" in the GET /arbitrary/resource/status/* API responses.
  • Display the local and total chunk counts on the loading screen.
  • Fixed bug in loading screen, which prevented the DOWNLOADING status from showing.
  • Added support for file hashes to optionally be included in GetArbitraryDataFileListMessage.
  • Rework of onNetworkGetArbitraryDataFileListMessage() to support custom hashes.
  • Fixed bug in build manager which would prevent future builds until the core was restarted.
  • Stop asking for hashes from a peer if one fails, to avoid spamming
  • Slightly optimized logic in fetchArbitraryDataFiles()
  • Reduced time between processing build tasks

qortal.jar

If built using OpenJDK 11:
MD5: 8555ceec6f2b5910707e9d11ae8da0c8
SHA1: 77e5c130c9e479350ed7d206f747c1f78f1871d1
SHA256: 2dda819818ca248a21332218520b8e44156e201923e351a142becdd94a87cb6d

qortal.exe

MD5: d8d6ca91548ea8a2e35814b20bde1def
SHA1: 78aedb61b8bfd81ef7763618469dad8786b9dca2
SHA256: 8118442b849c9365cd9bdfc0087cca7f08fa65c1e7aa69d037913fa2f783c5df

VirusTotal report for qortal.exe

qortal.zip

Contains bare minimum of:

  • built qortal.jar
  • log4j2.properties from git repo
  • start.sh from git repo
  • stop.sh from git repo
  • printf "{\n}\n" > settings.json

All timestamps set to same date-time as commit, obtained via git show --no-patch --format=%cI
Packed with 7z a -r -tzip qortal.zip qortal/

MD5: f2efc885ba4cf4df04ddb2b1c2853bac
SHA1: d9128e60ae866af422dba869d113a88f0a7a8729
SHA256: 45a098ad7aa86d2c482ab0822d3c9d6aa23236d8687f864f01a24c33ae611b51

v3.0.4

27 Jan 23:14
Compare
Choose a tag to compare

Changes in this release:

  • Fixed case sensitive ordering issue in websites list
  • Allow QDN data to be served without authentication by setting "qdnAuthBypassEnabled":true
  • Clear the cache when deleting data, so that it disappears from the data management screen.
  • MIN_LEVEL_FOR_BLOCK_SUBMISSION temporarily increased to 6, to help reduce re-orgs
  • Synchronize lists, to prevent an occasional ConcurrentModificationException
  • Fixed unhandled case in GET /arbitrary/{service}/{name}* endpoints

qortal.jar

If built using OpenJDK 11:
MD5: 7e7b005a8f119ed9c8df80b4b112d039
SHA1: f94e791212d22a2988846c9e997a4605d46ecf46
SHA256: d9c3ec874575315e9ff7cb4a4cceddc878016415264d02dbfdabf5e50524b596

qortal.exe

MD5: 11523cd18e5ad84025a1096929363db7
SHA1: c7d7b0d3cacb61a1984feda335a3e3cbae783d85
SHA256: 4e14b76c406597b119e1527fdbe5d485e87289556f516e02a33d88204b1a7500

VirusTotal report for qortal.exe

qortal.zip

Contains bare minimum of:

  • built qortal.jar
  • log4j2.properties from git repo
  • start.sh from git repo
  • stop.sh from git repo
  • printf "{\n}\n" > settings.json

All timestamps set to same date-time as commit, obtained via git show --no-patch --format=%cI
Packed with 7z a -r -tzip qortal.zip qortal/

MD5: 51efd5ab35b80dff83620880862f3f21
SHA1: 3dd8ead201075b4238b2c6b614597010590fd890
SHA256: 6d71e20576f133ac6e2c82359e2e4f8ccd36833a6dc2a8374d53d68b93d14384

v3.0.2

22 Jan 22:57
Compare
Choose a tag to compare

Changes in this release:

  • Fix for IV error encountered on some systems. This may only take effect after updates are published to existing resources.
  • "Not started" renamed to "Published"
  • Rework of file list requests and relay mode, to hopefully improve data transfer issues. May need further fine tuning.
  • Block all external requests from QDN websites
  • Reduced log spam
  • Fixed occasional exception when parsing IP addresses
  • Default minPeerVersion set to 3.0.1
  • Optimized "Data Management" (/arbitrary/hosted) APIs
  • Added limit/offset to GET /arbitrary/hosted API endpoints
  • Sort hosted data in reverse order (newest first)
  • Added GET /arbitrary/resources/search API
  • Improved cache clearing process and logging.
  • Added retry mechanism when deleting relayed files
  • Include "size" in /arbitrary/resource APIs
  • Increased frequency of retries when data can't be located
  • Improved some /blocks API endpoints
  • Increase MAX_ACCOUNT_COUNT to 5000 (around 0.5MB of data) to see if it helps with minting efficiency.
  • Added networking optimization, to avoid wasted processing on every read.

qortal.jar

If built using OpenJDK 11:
MD5: 93a8fdf295bb1bb0675b12f9b809e8c5
SHA1: 6a6c24a474044a17d8088c6b3a84108414fdbf2d
SHA256: 9c4f71f661de42d2148d8cc65056be7891898446d01bd33eae560d90516935b0

qortal.exe

MD5: 72a552a3fc87fcf7c6f9f22c9e00d8cd
SHA1: 3cd0cf1ef4c9a0cbd22ee86da61c15a7e215db1f
SHA256: 9801dd7007e1935a2cd345a53416d5290e47722fd443266638e75091859b3a0c

VirusTotal report for qortal.exe

qortal.zip

Contains bare minimum of:

  • built qortal.jar
  • log4j2.properties from git repo
  • start.sh from git repo
  • stop.sh from git repo
  • printf "{\n}\n" > settings.json

All timestamps set to same date-time as commit, obtained via git show --no-patch --format=%cI
Packed with 7z a -r -tzip qortal.zip qortal/

MD5: e51845684582345fab02a5baa8049fd0
SHA1: b03102b74e8de63ae209cde64190f2291721114e
SHA256: e5fc3edc55e1617c2889226da33232e0ba222b9b7b54f5da7eec9485cb263a46

v3.0.1 - Initial QDN release

13 Jan 22:44
Compare
Choose a tag to compare

Changes in this release:

  • Added initial support for QDN via ARBITRARY transaction additions
  • Added new db table to track file locations
  • Go-live timestamp for QDN is Fri, 14 Jan 2022 16:00:00 UTC

Note: if using the UI, version 1.7.0 or higher must be used. Older UI versions are incompatible with this core release.

qortal.jar

If built using OpenJDK 11:
MD5: 23a0eea4ccb3ed9086450d82e202e14a
SHA1: 4df3beb41c449f75023cc6fe504878f55a17f1f2
SHA256: 84c4aeb515cbb8a24bafa5a44450de4858216f8048a43232d921c1bda1855f73

qortal.exe

MD5: 3c59558ba5579ac323d4d63f492df6cd
SHA1: 7ea5f9722f39129d0a6e42815057f7bbd7d9d6f9
SHA256: 7f2bf2522ee958512a94650c5cba24c220c5b4a2086be1ca959d7ddb1baaf876

VirusTotal report for qortal.exe

qortal.zip

Contains bare minimum of:

  • built qortal.jar
  • log4j2.properties from git repo
  • start.sh from git repo
  • stop.sh from git repo
  • printf "{\n}\n" > settings.json

All timestamps set to same date-time as commit, obtained via git show --no-patch --format=%cI
Packed with 7z a -r -tzip qortal.zip qortal/

MD5: 2d63f07a11b69b4f7a61392c33ca6815
SHA1: f3893e2a62ccf85333c0eac11b2ae6888d839c46
SHA256: 461547bb495e13dd0dd64ced9ba6f76ef7cba3bb1c7658c38888ccdc8a53adba

v2.1.3

19 Dec 22:06
Compare
Choose a tag to compare

Changes in this release:

  • Handle missing case in names integrity check caused by an UPDATE_NAME transaction with a blank "newName" value. Should fix NullPointerException on node startup.

  • Disable the names integrity check on startup by default. It can optionally be re-enabled by setting: "namesIntegrityCheckEnabled": true.

  • Added French translations - thanks to @stchoupi for the original work, @protoniuman for the revisions, and @QuickMythril for committing them to git.

  • Don't return online accounts signatures from GET /blocks/byheight/{height} or GET /blocks/signature/{signature} unless requested using the includeOnlineSignatures=true query string parameter. Should fix CPU issues seen when using new Minting Info screen, as well as speeding up these API endpoints which have been extremely slow for a very long time.

qortal.jar

If built using OpenJDK 11:
MD5: 717f30d7bc50c2b106eed56c987a49e3
SHA1: 5dd60221342650d7eb87c8f5c84dc777aa4dd4c6
SHA256: d30bad4c25313bc0f05a0aa8a605174a34f20555e563bcc396741f828c414406

qortal.exe

MD5: 6dc3e9bfba02f83a4180fafc4263ad27
SHA1: de6c1e15ab9e27bb4f64e23a1cef8e829971490e
SHA256: bc45a30c08e8365d1651d737edea45b2ad99ee4504b666ff2552f6e51e4b1911

VirusTotal report for qortal.exe

qortal.zip

Contains bare minimum of:

  • built qortal.jar
  • log4j2.properties from git repo
  • start.sh from git repo
  • stop.sh from git repo
  • printf "{\n}\n" > settings.json

All timestamps set to same date-time as commit, obtained via git show --no-patch --format=%cI
Packed with 7z a -r -tzip qortal.zip qortal/

MD5: 49838e9320889deddf21c31f3c11c370
SHA1: d151dd8b490c3381c083d3f565564c4f7a46242d
SHA256: 850dfacad376b2b156b6ec2ed07335d72277cf74c189a12838a9f994cc92c849

v2.1.2

11 Dec 22:26
Compare
Choose a tag to compare

Changes in this release:

  • Small bug fix release

qortal.jar

If built using OpenJDK 11:
MD5: 403003e145a2e67db371b2c4889ef062
SHA1: 0f87305bdd24314d398ad73d963e359ea1617474
SHA256: 985f92ba7f8e9aa69bc84951dbd702d5bfe6d287eae8fab4c09276e18492eef8

qortal.exe

MD5: ce1306cae217bef33af59f1ee4230079
SHA1: 24f2a3d327ed7bfc36d947385e935247589cdf89
SHA256: 5dfd965bc2bdd73a86fa4aaa352b4bf201856ce832f9b67793059eef3baeaa26

VirusTotal report for qortal.exe

qortal.zip

Contains bare minimum of:

  • built qortal.jar
  • log4j2.properties from git repo
  • start.sh from git repo
  • stop.sh from git repo
  • printf "{\n}\n" > settings.json

All timestamps set to same date-time as commit, obtained via git show --no-patch --format=%cI
Packed with 7z a -r -tzip qortal.zip qortal/

MD5: 3b340c5cbb1af7f38da8d1f64f93b214
SHA1: 86fa88989a1020836b6fd87c0a44569854330c97
SHA256: 54a29df873f45fb65edd2e4346bc035d186400122c4fe89a7d5a7578edd9ac45

v2.1.1

08 Dec 19:31
Compare
Choose a tag to compare

Changes in this release:

Various fixes relating to sleeping ATs:

  • Added LitecoinACCTv3 and DogecoinACCTv3, containing a bug fix for refunds
  • Switch over to ACCTv3 for new listings
  • Only return OFFERING trades in GET /crosschain/tradeoffers
  • Fixed bugs in the GET /crosschain/trades API endpoint caused by the introduction of ACCTv2
  • Fixed bugs in the GET /crosschain/price API endpoint caused by the introduction of ACCTv2
  • Fixed bugs in the GET /crosschain/tradeoffers API endpoint caused by the introduction of ACCTv2

Other additions:

  • Added GET /addresses/online/levels API endpoint to return the number of minters at each level
  • Added 8 qortalnodes.live nodes to the default list.

Notes:

  • After updating to v2.1.1, please cancel and relist any active trade portal offers, to avoid the possibility of being affected by a bug found in 2.1.0.

qortal.jar

If built using OpenJDK 11:
MD5: c7d4e2fa01bdb888d081fd19c73b1d41
SHA1: 0189dd8599e4206a28af4d866007c20e3a3c8154
SHA256: 8e03b003ee64b2d877bd0f85ee0d692a7cccac250622afdb6c793af42c330d45

qortal.exe

MD5: 46cd601834deabba0bfea31ef73bad62
SHA1: b36d668a839544d1ef22d4309ef01f3f3c0ec066
SHA256: af38b0904bcede562b594dd6b1a4ba33f876decaf802159c1ddd58907b936c6c

VirusTotal report for qortal.exe

qortal.zip

Contains bare minimum of:

  • built qortal.jar
  • log4j2.properties from git repo
  • start.sh from git repo
  • stop.sh from git repo
  • printf "{\n}\n" > settings.json

All timestamps set to same date-time as commit, obtained via git show --no-patch --format=%cI
Packed with 7z a -r -tzip qortal.zip qortal/

MD5: cd392c85dec20a43fd967db27bc9f8ac
SHA1: fc56ebf6e74161e4bd944f90cb5fc9d44f50bf89
SHA256: 0b92c360a4c0f01e8e1d8fdff2b0a20c996f00787b740c4da8ae149bd35dd21d

v2.1.0

24 Nov 19:09
Compare
Choose a tag to compare

Changes in this release:

  • Added LitecoinACCTv2 and DogecoinACCTv2 with sleeping AT support
  • Switched new listings to use ACCTv2 by default
  • Fix for zero timestamps in trade history
  • Default min level for block submissions increased to 3 (to reduce block candidates)
  • Increased frequency of automatic repository maintenance attempts (now around twice as frequent)
  • Add API option to return inverse price (thanks to @QuickMythril)
  • Updated BTC electrum servers (again thanks to @QuickMythril)
  • Added some German translations (thanks to @tobiaswild)
  • Added another bootstrap host
  • Include the initial peers when creating bootstraps
  • "Lists" feature is now generic (in preparation for data hosting)
  • Improved trade bot backups so that the current order being bought is included
  • Prevent any kind of trading unless the blockchain is fully synced
  • Fixed issue with GET /crosschain/trades API endpoint where the minimumTimestamp parameter returned inconsistent results

qortal.jar

If built using OpenJDK 11:
MD5: 3323620c9a6424b4b1f7e9e79fd5c40d
SHA1: 83f9bfd9bcfae3dc33f0c458e433ec314c3eaac4
SHA256: eb8aa9f527752589649318ae4891cce0b80651d94c03a26386f1c87e303803cb

qortal.exe

MD5: 9ddb1a88d401b20c9941a8fc9965d496
SHA1: d3775e10f9afe818e26df5eb75967f645c25014b
SHA256: c38b3b8899dacf612728914f3bb2b0da0ef16885262941676eeda54222ba0450

VirusTotal report for qortal.exe

qortal.zip

Contains bare minimum of:

  • built qortal.jar
  • log4j2.properties from git repo
  • start.sh from git repo
  • stop.sh from git repo
  • printf "{\n}\n" > settings.json

All timestamps set to same date-time as commit, obtained via git show --no-patch --format=%cI
Packed with 7z a -r -tzip qortal.zip qortal/

MD5: bae478ecb241dce389615ebda518bcec
SHA1: bbc1142ab49b5a6586104cf491a32d1a7a5816d1
SHA256: 07649b419c8c67838163e180bb3a409e676e01027d6b17c2322963ee0d75b97b

v2.0.0

13 Oct 18:24
Compare
Choose a tag to compare

Changes in this release:

New features:

  • Rework of SQL repository to reduce full node size from 25GB+ to 10GB
  • Added top-only sync option, to reduce database to under 1GB by holding only recent blocks
  • Added automatic bootstrapping feature, which occurs for new nodes or after deleting the db folder
  • Added import/export of minting accounts (in JSON format)
  • Automatically import data on node startup, and export it on shutdown
  • Speed up syncing of older blocks by reading from the block archive rather than the SQL database
  • Added new /bootstrap API endpoints for bootstrap creation and validation.
  • Added scheduled repository maintenance to keep database sizes down. By default it occurs every 1-4 weeks at a random time.

Note: the first time you run 2.0.0 will result in either a reshape or an automatic bootstrap

  • If the existing db has the AT States height index intact, it will be transitioned to the block archive format (approx 2 hours with SSD, much longer with HDD).
  • If there is no existing db, or the db is missing the index, a bootstrap will be performed automatically, but any trade keys and minting accounts will be retained (approx 30 mins).
  • The above processes will be skipped for anyone who has previously run a 2.0.0 beta version, as they will have gone through this process already.

Full nodes running v2.0.0+ will now have an "archive" folder within the existing "db" folder. Do not delete this, as it is needed to access and serve older blocks.

qortal.jar

If built using OpenJDK 11:
MD5: ca90ac1599c763803a01960473a724da
SHA1: 1880ecb7342885619947fc636b16e280fdf4a299
SHA256: a8567a1ff6d7ca163b7d7a442a78deb3d94772e36eb6cc9da206ba2d7d1ad6d7

qortal.exe

MD5: 595b005ffb55c40eb1433097da57daf1
SHA1: 7dc27a50d9c5d3117b6377446c0392c216d147cd
SHA256: 6cf4b2b4a8aae510fab88ad152b53cdf48a1591bebf72b2f0a6a3eaaae3bb58f

VirusTotal report for qortal.exe

qortal.zip

Contains bare minimum of:

  • built qortal.jar
  • log4j2.properties from git repo
  • start.sh from git repo
  • stop.sh from git repo
  • printf "{\n}\n" > settings.json

All timestamps set to same date-time as commit, obtained via git show --no-patch --format=%cI
Packed with 7z a -r -tzip qortal.zip qortal/

MD5: fc5983df975fa4d75e87d65614d238bb
SHA1: 4da9e67cc2748b36658e4628d6acc07ecff7f4b0
SHA256: 51403af6ed2428053b9d0d1ba631823239f7a585445f843a6092d9d484f410cd

v1.7.0

26 Sep 22:36
Compare
Choose a tag to compare

Changes in this release:

New features:

  • Added support for blocking Q-Chat participants (UI not yet released)
  • Added foundations necessary to reduce AT load
  • Simplified the process of importing trade bot data backups
  • Added database integrity check for registered names
  • Allow an alternative block to be minted if the chain stalls due to an invalid block
  • Keep track of invalid block signatures and avoid peers that return them
  • Validate blocks in syncToPeerChain() before orphaning
  • Added "apiKeyDisabled" setting to bypass API key / loopback checking for those who need it
  • Minimum order size set to 0.01 LTC, to avoid dust errors
  • Reduced retention window of online account signatures and AT states data
  • Allow trade bots in the REFUNDING state to be deleted if the user chooses to
  • Added inputs, outputs and feeAmount to /crosschain//walletbalance endpoints

Bug fixes:

  • Fixed exception occasionally seen in 1.6.0 relating to the tray icons
  • Fixed exception thrown on startup when using X2Go
  • Improved handling of RPC errors
  • Fixed bug which prevented the "reduced name" from being updated in UPDATE_NAME transactions.
  • Fixed stuck blocks due to invalid name transactions
  • Fixed issues with refund API

Translations:

  • Added Hungarian translations (thanks to @ScythianQortal)
  • Fixed issue with Chinese translations
  • Reorganized all translations to make them consistent (thanks to @ScythianQortal)

qortal.jar

If built using OpenJDK 14:
MD5: 645837ab9d4225e9dd9fe184aab3fcf8
SHA1: 7dc4e9b5c13893f0c10d0c84747cda69e84293d1
SHA256: 573e2124ca1f386d132e55a40df674f034f5f8475615bd4cc3497bd3e8513e59

qortal.exe

MD5: fe4e36d286c7298d2fb43a19a0640a55
SHA1: 665e9b313a5b63f983791ac03e9cf9d4d3c52471
SHA256: f27281036f9d8ffefb2ca011febefc8b1f0d0edcd8d2296af5b05b8a1046b838

VirusTotal report for qortal.exe

qortal.zip

Contains bare minimum of:

  • built qortal.jar
  • log4j2.properties from git repo
  • start.sh from git repo
  • stop.sh from git repo
  • printf "{\n}\n" > settings.json

All timestamps set to same date-time as commit, obtained via git show --no-patch --format=%cI
Packed with 7z a -r -tzip qortal.zip qortal/

MD5: d6f1221eb85f26e75b0bd0c836dbfad2
SHA1: 3f8084f4b65fc00518cf07886335c71366532f05
SHA256: 98e3a6f179a34e0ac08b692a6056ce2b65943f9f3cb66330666864ac4393e385