1f7827b51f
Converted AccountData's initialLevel to blocksMintedAdjustment. Corresponding changes to AccountLevelTransaction so that level set in genesis block is converted to blocksMintedAdjustment, via cumulativeBlocksByLevel. Ditto changes to HSQLDBAccountRepository, HSQLDBDatabaseUpdates, [HSQLDB]TransactionRepository, etc. Changes to API call POST /admin/mintingaccounts to check passed reward-share private key maps to a reward-share with minting account that still has privilege to mint. It's possible for a TRANSFER_PRIVS transaction to transfer away minting privileges from a minting account referenced by in a reward-share. Change to RewardShareTransaction to allow users to cancel a reward-share even if minting-account component no longer has minting privs. This should allow users to clean up more after a privs transfer. Re-order processing/orphaning in Block.process()/Block.orphan() to be more consistent and also to take in account changes that might have been caused by TRANSFER_PRIVS transactions which affect who might actually receive block rewards/tx fees. Founders now gain blocksMinted & levels as part of minting blocks. (Needed to make TRANSFER_PRIVS from a founder account to work). BlockMinter now has added checks to make sure that the reward-shares it might use to mint blocks still have valid minting-accounts. i.e. that the minting-account component of reward-share hasn't had minting privs transferred away by TRANSFER_PRIVS tx. Controller now rejects online-accounts from peers that no longer have minting privs (e.g. transferred away by TRANSFER_PRIVS) Corresponding, Controller no longer SENDS online-accounts that no longer have minting privs to other peers. Added some tests - more tests needed, e.g. for multiple transfers into the same account, or a test for minting post transfer for both sender & recipient. |
||
---|---|---|
lib/org/ciyam/at | ||
src | ||
.gitignore | ||
log4j2.properties | ||
pom.xml | ||
README.md |
((Qora2)) - Qortal Project - Official Repo
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.