00656f6724
log4j2.properties now has debugging entries removed. log4j2-test.properties (not in repo) takes priority so using that in development instead. Unconfirmed transactions no longer wiped on start-up by default - see Settings Reworking of {Public,Private,Genesis}Accounts as it seemed possible to silently lose public key in repository. The use of AccountData didn't work and so field-specific repository calls have been made instead (e.g. setLastReference) that try to opportunistically store public key too, if available (i.e. caller is PublicKeyAccount subclass, or better). Added API call GET /addresses/{address} to return general account info in one go. (Essentially the AccountData object as fetched from repository). Initial work on adding default groupID to accounts, along with corresponding SET_GROUP transaction type. In additional, added blockchain-wide default groupID and flag to allow/disallow no-group/groupless transactions. Initial work on group-admin approval of transactions tied to a specific group via txGroupId. More work needed on transaction's "effective txGroupId"! API call /transactions/pending to list transactions pending group-admin approval. However, this needs more work (see effective txGroupId above) and potentially offloading to HSQLDB repository if possible. Minor CIYAM AT renames to help static reflection initializers. Block.orphan() no longer adds orphaned transactions back to unconfirmed pile as they are themselves deleted during Transaction.orphan(). Maybe the answer is to NOT delete them during Transaction.orphan() but to add them to unconfirmed pile at that point? Very old transactions leftover from major resync would simply expire, whereas recently transactions leftover from minor resync could still make it into a new block on synced chain fork. Changes/tidying/improvements to block generator regarding removing invalid transactions and dealing with transactions pending group approval. Approval threshold added to groups. Mass refactoring of transaction-related classes to unify constructors, particularly field ordering, to fall in line with raw transaction layout. e.g. constructors now reflect that raw transactions mostly start with type, timestamp, txGroupId, publicKey, reference e.g. JAXB afterUnmarshal methods added where needed and corresponding nasty code in Transaction subclass constructors ripped out. e.g. TransactionTransformer subclasses contain less duplicated code. Fixed bug with repository save points thanks to swapping to Deque. Some fixes to do with missing transaction types being passed to JAXB TransactionData subclass constructors. Ripped out obsolete toJSON in TransactionTransformers as this is all nicely taken care of by Swagger/OpenAPI (thanks @Kc) |
||
---|---|---|
.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.