Qortal Core - Main Code Repository Decentralized Data Network - Blockchain - TRUE Cross-Chain Trading - Application and Website Hosting - Much More - Qortal is the future internet infrastructure for the global digital world.
Go to file
catbref 94cdc10151 Initial work on BLOCK_SUMMARIES_V2, part of a bigger arc to improve synchronization.
Touches quite a few files because:

* Deprecate HEIGHT_V2 because it doesn't contain enough info to be fully useful during sync.
Newer peers will re-use BLOCK_SUMMARIES_V2.

* For newer peers, instead of sending / broadcasting HEIGHT_V2,
send top N block summaries instead, to avoid requests for minor reorgs.

* When responding to GET_BLOCK, and we don't actually have the requested block,
we currently send an empty BLOCK_SUMMARIES message instead of not responding,
which would cause a slow timeout in Synchronizer.

This pattern has spread to other network message response code,
so now we introduce a generic 'unknown' message type for all these cases.

* Remove PeerChainTipData class entirely and re-use BlockSummaryData instead.

* Each Peer instance used to hold PeerChainTipData - essentially single latest block summary - but now holds a List of latest block summaries.

* PeerChainTipData getter/setter methods modified for compatibility at this point in time.

* Repository methods that return BlockSummaryData (or lists of) now try to fully populate them,
including newly added block reference field.

* Re-worked Peer.canUseCommonBlockData() to be more readable

* Cherry-picked patch to Message.fromByteBuffer() to pass an empty, read-only ByteBuffer to subclass fromByteBuffer() methods, instead of null.
This allows natural use of BufferUnderflowException if a subclass tries to use read(), or hasRemaining(), etc. from an empty data-payload message.
Previously this could have caused an NPE.
2022-09-24 13:48:01 +01:00
.github/workflows Automated testing (#38) 2021-05-26 11:27:46 +01:00
lib Add WaifUPnP-1.1 jar to project. 2022-02-18 20:05:14 +00:00
src Initial work on BLOCK_SUMMARIES_V2, part of a bigger arc to improve synchronization. 2022-09-24 13:48:01 +01:00
tools qdata utility renamed to qdn 2022-08-12 13:38:30 +01:00
WindowsInstaller Updated AdvancedInstaller project for v3.4.3 2022-08-01 19:58:19 +01:00
.gitignore Added /wallets to .gitignore, in preparation for pirate chain support. 2022-05-12 19:34:53 +01:00
AutoUpdates.md More detail in AutoUpdates.md 2021-02-21 17:12:02 +00:00
DATABASE.md Documentation updates 2021-02-06 10:59:31 +00:00
Dockerfile feat: add Dockerfile 2022-01-23 16:48:34 -08:00
log4j2.properties Updated log4j to 2.17.1 2022-01-02 20:50:38 +00:00
pom.xml Bump version to 3.6.0 2022-09-19 17:29:26 +01:00
README.md Fixed inaccurate README text that was accidentally merged from the data node repository. 2022-01-29 22:37:27 +00:00
run.sh Improved start-up shell script "start.sh" 2020-09-01 10:25:48 +01:00
start.sh Improved start-up shell script "start.sh" 2020-09-01 10:25:48 +01:00
stop.sh Updated stop.sh script to use the /admin/stop API endpoint if an apikey.txt file is available. 2022-01-13 19:18:39 +00:00
TestNets.md Updated testnet documentation 2022-02-25 11:08:37 +00:00

Qortal Project - Official Repo

Build / run

  • Requires Java 11. OpenJDK 11 recommended over Java SE.
  • Install Maven
  • Use Maven to fetch dependencies and build: mvn clean package
  • Built JAR should be something like target/qortal-1.0.jar
  • Create basic settings.json file: echo '{}' > settings.json
  • Run JAR in same working directory as settings.json: java -jar target/qortal-1.0.jar
  • Wrap in shell script, add JVM flags, redirection, backgrounding, etc. as necessary.
  • Or use supplied example shell script: start.sh