forked from Qortal/qortal
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.
449761b6ca
Problem: The "Names" table (the latest state of each name) drifts out of sync with the name-related transaction history on a subset of nodes for some unknown and seemingly difficult to find reason. Solution: Treat the "Names" table as a cache that can be rebuilt at any time. It now works like this: - On node startup, rebuild the entire Names table by replaying the transaction history of all registered names. Includes registrations, updates, buys and sells. - Add a "pre-process" stage to block/transaction processing. If the block contains a name related transaction, rebuild the Names cache for any names referenced by these transactions before validating anything. The existing "integrity check" has been modified to just check basic attributes based on the latest transaction for a name. It will log if there are any inconsistencies found, but won't correct anything. This adds confidence that the rebuild has worked correctly. There are also multiple unit tests to ensure that the rebuilds are coping with various different scenarios. |
||
---|---|---|
.github/workflows | ||
lib/org | ||
src | ||
tools | ||
WindowsInstaller | ||
.gitignore | ||
AutoUpdates.md | ||
DATABASE.md | ||
log4j2.properties | ||
pom.xml | ||
README.md | ||
run.sh | ||
start.sh | ||
stop.sh | ||
TestNets.md |
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