b5c02f49ce
Rejigged pom.xml, extracting common dependency versions as properties. Removed extraneous HSQLDB dependency (v2.4.1) as we're using svn r5836 for now. Removed calls to Security.checkApiCallAllowed() for all API calls EXCEPT /admin/stop. Throws error if remote IP is not localhost. Added 'global' OpenAPI parameters to fake /admin/dud endpoint to save copy&pasting. This will need more tidying in the future, or at least future support from swagger-core. Code added in AnnotationPostProcessor to insert global parameters in top-level OpenAPI components section. /block-explorer.html hidden from API UI BlocksResource now expects Base64 block signatures instead of Base58. Endpoints that return block data also accept optional "includeTransactions" query param which does exactly that. BlockWithTransactions API model added for above. Some attempt to get transaction-specific data returned but no luck as yet. (TransactionData, GenesisTransactionData, PaymentTransactionData touched). See https://github.com/swagger-api/swagger-core/issues/3046 TransactionsResource now has support for optional query params "limit" and "offset" so that only a subset of large results can be requested. UtilsResource added to provide convenient Base64<->Base58 conversions. /admin/uptime fixed to return uptime from application launch instead of instantiation of AdminResource class! Controller improved to detect repository and API startup failures. HSQLDBRepositoryFactory now detects when it can't open database and throws. (Before it would simply hang). Removed extraneous import from qora.account.Account |
||
---|---|---|
.settings | ||
globalization | ||
lib/org | ||
src | ||
tests/test | ||
.classpath | ||
.gitignore | ||
.project | ||
block-explorer.html | ||
log4j2.properties | ||
NOTES.md | ||
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.