752361ecff
Fixed bug in GenesisBlock which wasn't stripping out ISSUE_ASSET transactions for v1 blockchains. Updated blockchain.json for v1 qora blockchain to fall into line with new BlockChain config unmarshalling code. Improved TransactionData.equals when comparing exact same object. Improved HSQLDBBlockRepository.getHeightFromTimestamp to use OffsetDateTime object, which includes time zone info, to fix incorrect SQL full-scan so that DB now does index-scan instead. Also converted use of MAX(column) to ORDER BY column DESC as MAX() not optimized when MVCC in effect. Added corresponding INDEX to Blocks on columns (generation, height); Similar MAX(column) to ORDER BY column DESC improvement for getBlockchainHeight(). Bumped size of HSQLDB TYPE ATTags from VARCHAR(32) to VARCHAR(80) Improved reflection-based method calls to rethrow underlying exceptions like DataException, TransformationException, etc. instead of losing them in general InvocationTargetException. Re-added atTransaction.toBytes() method so v1 transactions can be verified. Fixed extraneous additional copy of voter's public key when serializing in VoteOnPollTransactionTransformer.toBytes() Fix-up of v1feeder |
||
---|---|---|
.settings | ||
lib/org | ||
src | ||
.classpath | ||
.gitignore | ||
.project | ||
blockchain.json | ||
log4j2.properties | ||
osgi-console.sh | ||
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.