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 fbdc1e1cdb OnlineAccountsV3:
Adding support for GET_ONLINE_ACCOUNTS_V3 to Controller, which calls OnlineAccountsManager.

With OnlineAccountsV3, instead of nodes sending their list of known online accounts (public keys),
nodes now send a summary which contains hashes of known online accounts, one per timestamp + leading-byte combo.
Thus outgoing messages are much smaller and scale better with more users.
Remote peers compare the hashes and send back lists of online accounts (for that timestamp + leading-byte combo) where hashes do not match.

Massive rewrite of OnlineAccountsManager to maintain online accounts.
Now there are three caches:
1. all online accounts, but split into sets by timestamp
2. 'hashes' of all online accounts, one hash per timestamp+leading-byte combination
Mainly for efficient use by GetOnlineAccountsV3 message constructor.
3. online accounts for the highest blocks on our chain to speed up block processing
Note that highest blocks might be way older than 'current' blocks if we're somewhat behind in syncing.

Other OnlineAccountsManager changes:
* Use scheduling executor service to manage subtasks
* Switch from 'synchronized' to 'concurrent' collections
* Generally switch from Lists to Sets - requires improved OnlineAccountData.hashCode() - further work needed
* Only send V3 messages to peers with version >= 3.2.203 (for testing)
* More info on which online accounts lists are returned depending on use-cases

To test, change your peer's version (in pom.xml?) to v3.2.203.
2022-06-04 10:49:59 +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 OnlineAccountsV3: 2022-06-04 10:49:59 +01:00
tools Removed OpenJDK 11 reference in build-release.sh, as it seems that checksums will not match by default due to timestamps and file orderings. 2022-03-19 11:05:51 +00:00
WindowsInstaller Updated AdvancedInstaller project for v3.3.2 2022-06-02 11:31:56 +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.3.2 2022-05-27 17:23:53 +02: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