c2e8392f05
Bumped version Controller no longer uses block height to determine whether to sync but now uses peer's latest block's timestamp and signature. Also BlockGenerator checks whether it's generating in isolation using the same peer info (latest block timestamp and signature). Added API call POST /admin/forcesync peer-address to help get wayward nodes back on track. Unified code around, and calling, Transaction.importAsUnconfirmed(). Tidied code around somelock.tryLock() to be more readable. Controller (post-sync) now broadcasts new chaintip info if our latest block's signature has changed, not simply the height. Network.broadcast() only sends out via outbound peer if node has more than one connection from the same peer. So Controller would only update one of the peer records with chaintip info. Controller now updates all connected peers with the ID when it receives a HEIGHT or HEIGHT_V2 message. Added node1 thru node7.mcfamily.io to default peers in Network. Network ignores first "listen port" entry when receiving peers list from an outbound-connection peer as it already knows by virtue of having connected to it! More network message debug logging (hopefully never to be seen). [some old code left in, but commented out, for a while] |
||
---|---|---|
lib/org | ||
src | ||
.gitignore | ||
log4j2.properties | ||
pom.xml | ||
README.md |
Qora2
To use:
- Use maven to fetch dependencies.
- Build project.
- Build v1feeder.jar as a fatjar using src/v1feeder.java as the main class
- Fire up an old-gen Qora node.
- Use
v1feeder.jar
to migrate old Qora blocks to DB:
java -jar v1feeder.jar qora-v1-node-ip
You should now be able to run all the JUnit tests.
You can also examine the migrated database using HSQLDB's "sqltool".
It's a good idea to install "rlwrap" (ReadLine wrapper) too as sqltool doesn't support command history/editing!
Typical command line for sqltool would be:
rlwrap java -cp ${HSQLDB_JAR}:${SQLTOOL_JAR} org.hsqldb.cmdline.SqlTool --rcFile=${SQLTOOL_RC} qora
${HSQLDB_JAR}
contains pathname to where Maven downloaded hsqldb,
typically ${HOME}/.m2/repository/org/hsqldb/hsqldb/2.4.0/hsqldb-2.4.0.jar
,
but for now lib/org/hsqldb/hsqldb/r5836/hsqldb-r5836.jar
${SQLTOOL_JAR}
contains pathname to where Maven downloaded sqltool,
typically ${HOME}/.m2/repository/org/hsqldb/sqltool/2.4.1/sqltool-2.4.1.jar
${SQLTOOL_RC}
contains pathname to a text file describing Qora2 database,
e.g. ${HOME}/.sqltool.rc
, with contents like:
urlid qora
url jdbc:hsqldb:file:db/qora
username SA
password
urlid qora-test
url jdbc:hsqldb:file:db/test
username SA
password
You could change the line url jdbc:hsqldb:file:db/test
to use a full pathname for easier use.
Another idea is to assign a shell alias in your .bashrc
like:
export HSQLDB_JAR=${HOME}/.m2/repository/org/hsqldb/hsqldb/2.4.0/hsqldb-2.4.0.jar
export SQLTOOL_JAR=${HOME}/.m2/repository/org/hsqldb/sqltool/2.4.1/sqltool-2.4.1.jar
alias sqltool='rlwrap java -cp ${HSQLDB_JAR}:${SQLTOOL_JAR} org.hsqldb.cmdline.SqlTool --rcFile=${SQLTOOL_RC}'
So you can simply type: sqltool qora-test
Don't forget to use SHUTDOWN;
before exiting sqltool so that database files are closed cleanly.