forked from Qortal/qortal
Tree:
60f96d15bd
AT-sleep-until-message
BLOCK_SUMMARIES_V2
EPC-fixes
add-atstates-index
add-create-bytes-endpoint
arbitrary-resources-cache
at-states-fix
auto-update-033b6adb
auto-update-070f14b3
auto-update-1400e7ae
auto-update-867fe764
auto-update-94cfcd66
auto-update-a02d1cec
auto-update-b0f21c2e
auto-update-c4a7fb3b
batch-rewards
bindaddress-ipv4
block-archive
block-minter-updates
block-reward-distribution-fix
block-sequence
block-timings
blockminter-updates
blocksig
bootstrap
cancel-sell-name-fixes
chain-weight-consensus
chat-rate-limiter
chat-reference
chatdb
digibyte
disable-reference
height-v3
hosted-resources-search
ignore-old-versions
increase-online-timestamp-modulus
lists
lite-node
master
mempow-testing
name-fixes
networking
new-coins
null-owned-groups
online-accounts-mempow
online-accounts-mempow-v2
online-accounts-mempow-v2-block-updates
online-level-zero-accounts-api-call
optimize_ats
pirate-chain
prioritize-peers
protoniuman-FR-patch-1
pruning-mode
q-apps
qdn
qdn-direct-connections
qdn-file-list
qdn-metadata
qdn-on-chain-data
qora-holders-share
ravencoin
rebuild-archive
reduce-reward-shares
reindex
relay-hops
reticulum
segwit
share-bin-activation
shares-by-level-rework
split-DB
sync-long-tip
sync-multiple-blocks
synchronization-improvements
thread-limits
trade-bot-timeout-fix
trade-portal-updates
v2.0-beta
v1.0
v1.0.1
v1.0.2
v1.0.3
v1.0.3b
v1.0.3c
v1.0.4
v1.0.5
v1.0.6
v1.0.7
v1.0.8
v1.2.0
v1.2.1
v1.2.2
v1.2.3
v1.3.0
v1.3.1
v1.3.2
v1.3.3
v1.3.4
v1.3.5
v1.3.6
v1.3.7
v1.3.8
v1.3.9
v1.4.0
v1.4.1
v1.4.2
v1.4.3
v1.4.4
v1.4.5
v1.4.6
v1.5.0
v1.5.1
v1.5.2
v1.5.3
v1.5.4
v1.5.5
v1.5.6
v1.6.0
v1.7.0
v2.0.0
v2.1.0
v2.1.1
v2.1.2
v2.1.3
v3.0.0
v3.0.1
v3.0.2
v3.0.3
v3.0.4
v3.1.0
v3.1.1
v3.2.0
v3.2.1
v3.2.2
v3.2.3
v3.2.4
v3.2.5
v3.3.0
v3.3.1
v3.3.2
v3.3.3
v3.3.4
v3.3.5
v3.3.6
v3.3.7
v3.4.0
v3.4.1
v3.4.2
v3.4.3
v3.5.0
v3.6.0
v3.6.1
v3.6.2
v3.6.3
v3.6.4
v3.7.0
v3.8.0
v3.8.1
v3.8.2
v3.8.3
v3.8.4
v3.8.5
v3.8.6
v3.8.7
v3.8.8
v3.8.9
v3.9.0
v3.9.1
v4.0.0
v4.0.1
v4.0.2
v4.0.3
v4.1.0
v4.1.1
v4.1.2
v4.1.3
v4.2.0
v4.2.1
v4.2.2
v4.2.3
v4.2.4
v4.3.0
v4.3.1
v4.3.2
v4.4.0
v4.4.1
v4.4.2
v4.5.0
v4.5.1
v4.5.2
${ noResults }
1534 Commits (60f96d15bdc174c844fc6d23649b8423cbe2486d)
Author | SHA1 | Message | Date |
---|---|---|---|
catbref | 015f4fa725 |
Rework DB connection arg passing
Too many calls needing Connection object in args when they're only simple database reads. Even worse, some methods had database-less counterparts with different outputs, e.g. toJSON(). Now Connections can be requested from the pool for general database read scenarios. Code paths that might perform a multi-statement database transaction still require a Connection arg passed around as the database transaction are local to that Connection. In light of above, added support for database opening, closing, setting URL. Fixed out of bounds array index bug in unknown-length version of DB.getResultSetBytes(). Fixed Block's lazy-instantiation of Transactions. Implemented Block's isSignatureValid(). Fixed bug in Crypto.isValidAddress() which was using the wrong bytes. Fix GenesisTransaction generic constructor calling super with PaymentTransaction type! Fix GenesisTransaction signature constructor using wrong column indexes from ResultSet. In Transaction, don't expect CREATOR_LENGTH bytes from database in case we're dealing with a GenesisTransaction where the creator's public key is only 8 bytes long. Improvements to unit tests, including changing migrate so it can be run repeatedly to do incremental migrations. |
6 years ago |
catbref | 71f9d5c0f0 |
More work on transactions and blocks
PaymentTransaction now uses Account for recipient internally but maybe should extend that type change to constructor args. GenesisBlock added also with signature test. More javadocs. |
6 years ago |
catbref | b90a486039 |
More work on Blocks, refactor to using public key in DB, etc.
Added brokenmd160.java as command-line support for producing broken MD160 digests. Transactions, and sub-classes, now use/store public key instead of Qora address. (Qora address can be derived from public key and they take up about the same space in DB). Loads more JavaDoc for lovely mouseover help in Eclipse IDE. Crypto.verify() and Crypto.sign() moved into PublicKeyAccount and PrivateKeyAccount as appropriate. Fleshed out Block, added BlockTransactions support. Added TODO comments as Eclipse helpfully lists these for later implementation. Made loading-from-DB-constructors protected/private and also throw NoDataFoundException if unable to load from DB. Public methods can call respective constructors, catch the above exception and return null if they like. Load-from-DB-constructors are to allow sub-classes to load some data from sub-tables and super-class to load from another table. (See PaymentTransaction/Transaction for example). Using public methods allows similar argument lists but with different names, e.g. DBObject.fromSignature(Connection, byte[]) and DBObject.fromReference(Connection, byte[]) Saving into DB maybe still a bit untidy. Looking for a way to close-couple column names with place-holder bind Objects. Less of: connection.prepareStatement("INSERT INTO table (column) VALUES (?)") DB.bindInsertPlaceholders(PreparedStatement, Object...); More like: DB.insertUpdate(String tableName, SomeMagicCloseCoupledPairs...) called like: DB.insertUpdate("Cats", {"name", "Tiddles"}, {"age", 3}); |
6 years ago |
catbref | a2b5fa140b |
Initial stab at migrating to HSQLDB for Qora gen2
Most SQL tables defined but only payment transactions actually implemented. Maven support added. Some code imported from 'old' Qora: RIPEMD160 renamed as BrokenMD160 and deprecated. whispersystem's Ed25519 implementation (to be replaced with bouncycastle). Basic Account/PublicKeyAccount/PrivateKeyAccount code. Some utils like Base58 and Pair. To use: Use maven to fetch dependencies. Build project. Fire up an old-gen Qora node. Run src/test/update.java as a JUnit test to build DB structure. Run src/test/migrate.java as a JUnit test to migrate old Qora blocks to DB. You should now be able to run src/test/load.java and src/test/save.java as JUnit tests demonstrating loading/saving Transactions from/to database. This commit done while halfway through adding Block support! |
6 years ago |