22c87a6e08
Added POST /names/update for building an UPDATE-NAME transaction. BlockGenerator now tries to validate new block after adding each unconfirmed transaction in turn. If block becomes invalid then that transaction is removed/skipped. This should further prevent block jams. Skipped transactions might be deleted as the next block is forged when unconfirmed transactions are collated/filtered/expired. Add Block.deleteTransaction() for use during block generation above. Block.addTransaction() and Block.deleteTransaction() use transaction signatures to test for presence in Block's existing transactions. Names shouldn't have stored registrant's public key! "registrantPublicKey" removed from NameData Java object/bean. Corresponding column removed from HSQLDB using ALTER TABLE but also from the original CREATE TABLE definition. Remove the ALTER TABLE statement just prior to rebuilding database! (This needs to be applied to Polls too as some point). Also, UpdateNameTransactions and BuyNameTransactions tables now allow name_reference to be NULL as this column value isn't set until the corresponding transactions are processed/added to a block. (name_reference is a link to previous name-related transaction that altered Name data like "owner" or "data" so that name-related transactions can be orphaned/undone). |
||
---|---|---|
.settings | ||
lib/org | ||
src | ||
.classpath | ||
.gitignore | ||
.project | ||
blockchain.json | ||
log4j2.properties | ||
osgi-console.sh | ||
pom.xml | ||
README.md | ||
settings.json |
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.