5526f9a7f0
Now using ATv2 dated 20181101172102 ATData now uses byte[] creatorPublicKey instead of String creator. TransactionData now has hashCode() and equals() methods, which is needed for new Transaction Comparator, used to sort transactions within a block, AT-first, then timestamp, then signature. AT-Transactions generate their own signatures using SHA2-256 of serialized data. Arbitrary Transactions try to clean up their files when orphaned. Deploy AT Transactions now check creation bytes (even for old v1 ATs). Deprecated Transaction.getBlock() as it doesn't seem used and would be better to simply have getHeight() rather than a method that 'knows too much' about Blocks/BlockData. Corresponding TransactionRepository.getBlockDataFromSignature() also deprecated. Loads more comments. Tidied up some SQL: mainly correcting case, moving PRIMARY KEY clauses to end of CREATE TABLE, removing unnecessary columns from indexes. Added "type" column to TransactionCreatorIndex so users can find their transactions and optionally filter by type. In BlockTransactions table, transaction_signature is now UNIQUE as a transaction cannot be included in more than one block. Various AT-related HSQLDB table and index changes. ArbitraryTransactions transformer fixed to always return a list of payments, even if empty. (Previously could return null which broke things). Added simplistic block generator. NOTE: unit tests broken due to pending upgrade to JUnit 5 |
||
---|---|---|
.settings | ||
globalization | ||
lib/org | ||
src | ||
.classpath | ||
.gitignore | ||
.project | ||
log4j2.properties | ||
NOTES.md | ||
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.