forked from Qortal/qortal
catbref
e25d24964c
Make BlockMinter more aggressive about obtaining blockchain lock.
Previously BlockMinter & Synchronizer would both try opportunistic locking, with no wait/timeout or fairness. This could lead to a situation where a majority of nodes are synchronizing, albeit only the top 1 or 2 blocks, but no node manages to mint within the 'recent' period, so the chain stalls. However, if a node is at/near the top of the chain then synchronization shouldn't take very long so we let BlockMinter wait until to 30s (approx. half typical block time) to obtain lock. This makes minting blocks more likely in a BlockMinter/Sync fight which helps keep the chain going. Detecting chain stalls, and allowing minting if we have plenty of peers, also produces blockchain 'islands' so isn't a simple fix at this point.
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: run.sh
Description
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.
Languages
Java
98.2%
Shell
0.5%
HTML
0.5%
JavaScript
0.4%
Perl
0.3%