Qortal Core - Main Code Repository Decentralized Data Network - Blockchain - TRUE Cross-Chain Trading - Application and Website Hosting - Much More - Qortal is the future internet infrastructure for the global digital world.
Go to file
catbref b5c02f49ce Work on API
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
2018-12-07 17:42:31 +00:00
.settings More work on API plus basic block explorer 2018-12-04 16:34:55 +00:00
globalization CHANGED: removed obsolete API methods from BlocksResource 2018-10-19 12:35:15 +02:00
lib/org Files missing from previous commit (somehow) 2018-12-03 13:12:52 +00:00
src Work on API 2018-12-07 17:42:31 +00:00
tests/test Files missing from previous commit (somehow) 2018-12-03 13:12:52 +00:00
.classpath Files missing from previous commit (somehow) 2018-12-03 13:12:52 +00:00
.gitignore Initial stab at migrating to HSQLDB for Qora gen2 2018-05-16 11:46:44 +01:00
.project Initial stab at migrating to HSQLDB for Qora gen2 2018-05-16 11:46:44 +01:00
block-explorer.html Replace toLocaleString with toUTCString in BlockExplorer due to Chrome bug 2018-12-05 12:18:33 +00:00
log4j2.properties Unit test fixes + initial CIYAM AT integration 2018-10-04 14:38:59 +01:00
NOTES.md Refactor stupid getResultSetBytes() method & fix migrate 2018-06-19 16:49:42 +01:00
pom.xml Work on API 2018-12-07 17:42:31 +00:00
README.md Unit test fixes + initial CIYAM AT integration 2018-10-04 14:38:59 +01:00
settings.json FATJAR packaging + block explorer changes 2018-12-05 11:32:55 +00:00

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.