CalDescent
6c9600cda0
Added API key header to GET /arbitrary/resource/status/* endpoints
2022-02-01 22:02:41 +00:00
CalDescent
82fa6a4fd8
Include "localChunkCount" and "totalChunkCount" in the GET /arbitrary/resource/status/* API responses.
...
These values are left out of other API endpoints where multiple resources are returned, because calculating the chunk counts is too time consuming.
2022-02-01 22:02:14 +00:00
CalDescent
45f2d7ab70
Revert "We (currently) can't filter unconfirmed transactions by address, because only the public key is stored in the database until it is confirmed (at which point there is an entry in the TransactionParticipants table which contains the address). Given that this isn't a simple problem to solve, for now it makes sense to reject this combination if requested via the /transactions/search API."
...
This reverts commit 7aed0354f1
.
2022-02-01 21:55:41 +00:00
CalDescent
33731b969a
Direct peer connections now send a file list request to the peer, rather than individually requesting every chunk for a transaction.
2022-02-01 09:04:31 +00:00
CalDescent
40a8cdc71f
Improved logging when fetching data files
2022-01-31 22:35:12 +00:00
CalDescent
cbe83987d8
Fixed occasional ConcurrentModificationException in the block archive reader.
2022-01-31 21:39:49 +00:00
CalDescent
01e4bf3a77
Try to speed up the shutdown process of the cleanup manager.
2022-01-31 21:39:20 +00:00
CalDescent
b198a8ea07
Fixed issue in ArbitraryDataFile.chunkExists() due to it not checking for the metadata file.
2022-01-31 21:38:51 +00:00
CalDescent
e2e87766fa
Moved log from INFO to DEBUG, as now the synchronizer is on its own thread it can occur more often than before.
2022-01-30 20:15:43 +00:00
CalDescent
f005a0975d
Shut down the synchronizer as soon as the controller is stopping, if we are able to.
2022-01-30 20:14:11 +00:00
CalDescent
5700369935
Prioritize syncing over transaction importing.
2022-01-30 20:09:35 +00:00
CalDescent
8a1fb6fe4e
If a lock can't be obtained when synchronizing, automatically request the sync again.
2022-01-30 20:09:09 +00:00
CalDescent
5b788dad2f
Relocated all synchronizer code from the controller to the synchronizer, and also moved synchonization onto its own thread.
2022-01-30 20:01:22 +00:00
CalDescent
fa2bd40d5f
Reduce log spam
2022-01-30 19:51:49 +00:00
CalDescent
074bfadb28
Don't bother locking if there are no new transactions to process
2022-01-30 19:50:09 +00:00
CalDescent
bd60c793be
Incoming transactions are now added to a queue, and then processed soon after.
...
This solves a problem where incoming transactions could rarely obtain a blockchain lock (due to multiple transactions arriving at once) and therefore most messages were thrown away. It was also causing constant blockchain locks to be acquired, which would often prevent the synchronizer from running.
2022-01-30 19:03:31 +00:00
CalDescent
90f3d2568a
Log whenever the synchronizer can't obtain a blockchain lock, so that blockchain lock issues are more easily noticed.
2022-01-30 19:00:28 +00:00
CalDescent
c73cdefe6f
transactionV5Timestamp moved to blockchain.json
2022-01-30 13:47:20 +00:00
CalDescent
c5093168b1
minAccountLevelToMint value moved to blockchain.json
2022-01-29 22:59:04 +00:00
CalDescent
a35e309a2f
minAccountLevelForBlockSubmissions moved to blockchain.json
2022-01-29 22:57:22 +00:00
CalDescent
bb35030112
Merge pull request #65 from QuickMythril/reduce-doge-fee
...
reduce DOGE fees
2022-01-29 20:14:04 +00:00
CalDescent
7aed0354f1
We (currently) can't filter unconfirmed transactions by address, because only the public key is stored in the database until it is confirmed (at which point there is an entry in the TransactionParticipants table which contains the address). Given that this isn't a simple problem to solve, for now it makes sense to reject this combination if requested via the /transactions/search API.
2022-01-29 19:24:28 +00:00
CalDescent
c4f763960c
Don't delete a resource's cache if a build is in progress.
...
Hopeful fix for "Unable to delete cache for resource: Unable to delete directory" error, and possibly some other file conflicts.
2022-01-29 19:18:06 +00:00
CalDescent
c5182a4589
Increased MAX_ACCOUNT_COUNT in GetOnlineAccountsMessage from 1000 to 5000
2022-01-29 12:39:43 +00:00
CalDescent
fc1a376fbd
Added POST /transaction/fee API endpoint, to return the recommended fee for the supplied transaction data.
2022-01-29 10:38:15 +00:00
CalDescent
27387a134f
Fixed typo
2022-01-28 19:58:32 +00:00
CalDescent
be7bb2df9e
Added GET /transaction/unitfee API endpoint, to obtain the unit fee for a transaction type
...
Additional params:
- timestamp: to allow for hard forks. Default: the current time
- level: the account level, to allow for the future possibility of different fees per level. Not currently used.
2022-01-28 19:00:15 +00:00
CalDescent
72a291a54a
Added initial support of different unit fees per transaction type.
...
Included a timestamp property, as this will be needed for each update (hard fork).
2022-01-28 18:50:03 +00:00
CalDescent
b1342d84fb
Updated potentially misleading log message.
2022-01-28 11:02:37 +00:00
CalDescent
cdd57190ce
Use getEffectiveMintingLevel() rather than getLevel()
2022-01-28 10:16:42 +00:00
CalDescent
7808a1553e
Fixed case sensitive ordering issues in other aspects of QDN.
2022-01-27 18:46:59 +00:00
CalDescent
a0ba016171
Fixed case sensitive ordering issue in websites list.
2022-01-27 18:42:52 +00:00
CalDescent
344704b6bf
MIN_LEVEL_FOR_BLOCK_SUBMISSION temporarily increased to 6.
...
This is to hopefully improve network stability whilst a more advanced solution is being worked on. It also allows us to collect some data on how well the network behaves when there are less block candidates. It should have no effect on minting rewards (other than any side effects as a result of improved network stability).
2022-01-27 18:15:00 +00:00
CalDescent
3303e41a39
Fixed unhandled case in GET /arbitrary/{service}/{name}* endpoints
2022-01-27 18:12:21 +00:00
CalDescent
4e71ae0e59
Allow QDN data to be served without authentication by setting "qdnAuthBypassEnabled":true
...
This allows the GET /arbitrary/{service}/{name} and GET /{service}/{name}/{identifier} endpoints to operate without any authentication. Useful for those who are running public QDN nodes and need to serve data over http(s).
2022-01-27 18:10:24 +00:00
CalDescent
9daf7a6668
Synchronize lists, to prevent an occasional ConcurrentModificationException
2022-01-26 22:40:34 +00:00
CalDescent
af06774ba6
Clear the cache when deleting data, so that it disappears from the data management screen.
2022-01-23 22:53:35 +00:00
CalDescent
6f7c8d96b9
Removed ApiService instance creation in ApplyUpdate as it wasn't really needed, and probably not sensible to instantiate it here.
2022-01-23 12:57:28 +00:00
CalDescent
ff6ec83b1c
Removed localAuthBypassEnabled override in unit tests.
...
Hopefully this will allow us to proactively catch any missing API keys in the future.
2022-01-23 12:48:37 +00:00
CalDescent
ea10eec926
Fixed bug in auto update process - use the API key when stopping the node.
...
Luckily this code is included in the new JAR, not the old one, so we should be able to regain auto update ability by issuing a new update.
2022-01-23 12:38:19 +00:00
CalDescent
6f724f648d
Fixed testDirectoryDigest() which has been failing for a couple of versions (due to gitignore removing the cache file)
2022-01-22 20:48:58 +00:00
CalDescent
048776e090
Ignore failing test due to recent API update, which makes the test incompatible. To be fixed later.
2022-01-22 20:43:28 +00:00
CalDescent
25efee55b8
Added networking optimization, to avoid wasted processing on every read.
...
Thanks to @catbref for finding this.
2022-01-22 18:43:32 +00:00
CalDescent
b30445c5f8
Increase MAX_ACCOUNT_COUNT to 5000 (around 0.5MB of data) to see if it helps with minting efficiency.
2022-01-21 16:11:21 +00:00
CalDescent
d105613e51
Improvements to some /blocks API endpoints
2022-01-21 16:07:18 +00:00
CalDescent
ef43e78d54
Reduced log spam
2022-01-21 15:20:16 +00:00
CalDescent
6f61fbb127
Reduced strictness of rate limiter, to allow two additional file list requests (15 and 30 seconds after initial attempt)
...
This should help catch any remaining chunks that were unable to be fetched in the first attempt due to network failures, bad peers, etc.
2022-01-21 15:20:04 +00:00
CalDescent
9f9b7cab99
Include "size" in /arbitrary/resource APIs
...
Note that this is not always accurate - it relates to the largest transaction size for this name, not necessarily the latest or the combined size of multiple transactions. This can be made accurate as soon as we have a "Resources" table to store this info. Trying to do it before then will be too inefficient in terms of queries.
2022-01-21 14:42:37 +00:00
CalDescent
f129e16878
Added retry mechanism to relay file deletions, just in case it fails on the first try.
...
A longer term solution to this hypothetical problem is to store relays in RAM or a temp folder only. Or maybe add an indicator file to instruct the cleanup manager to delete it. But this will require more development. 10 deletion attempts (each 1 second apart) should be enough for now.
2022-01-21 14:32:15 +00:00
CalDescent
8a42dce763
Use the first responding peer in the relay map.
...
This encourages shorter relays, since longer ones will take more time to respond, and also prevents a peer from intentionally taking a long time to respond so that it overwrites an existing entry.
Longer term we could consider keeping track of all respondents for each hash, if there are still issues with data retrieval. I suspect this won't be needed though, as the requesting peer has 16+ different peers connected, and therefore potentially 16 different mappings already.
2022-01-21 14:23:55 +00:00