CalDescent
c59869982b
Fix for system-wide QDN issues occuring when the metadata file has an empty chunks array.
...
It is quite likely that existing resources with both metadata and an empty chunks array will need to be republished, because this bug may have led to incorrect file deletions.
2022-04-16 11:25:44 +01:00
3f02c760c2
Add member count to each group returned by GET /member/{address}
2022-04-15 06:23:10 -04:00
CalDescent
fee603e500
Add member count to each group returned by GET /groups (expanded on code written by QuickMythril)
2022-04-15 10:19:43 +01:00
ad31d8014d
get memberCount with Group Data
...
works for lookup by groupId
2022-04-14 22:08:52 -04:00
CalDescent
58a0ac74d2
Merge pull request #84 from catbref/ByteArray
...
Improvements to ByteArray to leverage Java 11 'native' Arrays methods
2022-04-14 21:30:59 +01:00
8388aa9c23
update Russian translation
...
credit: Alexander45 & malina
2022-04-10 15:50:29 -04:00
catbref
c1894d8c00
Improvements to ByteArray to leverage Java 11 'native' Arrays.hashCode and Arrays.compareUnsigned for speed.
...
Also modified ambiguous ByteArray::new and ByteArray::of to ByteArray::wrap and ByteArray::copyOf.
Modifications to other classes that use ByteArray.
2022-04-10 16:38:02 +01:00
f7f9cdc518
Merge pull request #83 from aldum/feature/hungarian_translation
...
fixup grammar; add missing translations
2022-04-09 00:10:37 -04:00
850d7f8220
add/update translations
...
credit: johnnyfg (sv), schizo (it), IsBe (nl), Eduardo9999 (es)
2022-04-08 23:57:54 -04:00
aldum
051043283c
fixup grammar; add missing translations
2022-04-06 23:21:49 +02:00
15bc69de01
Merge pull request #82 from JaymenChou/patch-8
...
Update SysTray_zh_CN.properties
2022-04-05 13:38:13 -04:00
ee3cfa4d6d
fix typo
2022-04-05 13:26:02 -04:00
d9ae8a5552
Merge branch 'master' into patch-8
2022-04-05 13:23:19 -04:00
2326c31ee7
Merge branch 'master' into patch-7
2022-04-05 13:11:14 -04:00
91cb0f30dd
Updated TransactionValidity translations
...
added some missing entries, and sorted alphabetically.
2022-04-05 12:51:49 -04:00
c0307c352c
Updated ApiError translations
...
removed some duplicate entries, and standardized the order
2022-04-05 11:46:32 -04:00
8fd7c1b313
formatting fix
2022-04-05 11:09:30 -04:00
b8147659b1
Updated SysTray translations
...
added some missing entries, and sorted alphabetically.
2022-04-05 10:48:43 -04:00
JaymenChou
7a1bac682f
Update SysTray_zh_TW.properties
...
Add the missing term "PERFORMING_DB_MAINTENANCE" and translate it to Traditional Chinese
2022-04-04 20:36:48 +08:00
JaymenChou
9fdb7c977f
Update SysTray_zh_CN.properties
...
Translate remaining terms to Simple Chinese
2022-04-04 20:33:59 +08:00
JaymenChou
4f3948323b
Update SysTray_zh_TW.properties
...
Translate the remaining terms to Traditional Chinese
2022-04-04 20:31:19 +08:00
70fcc1f712
Merge pull request #78 from JaymenChou/patch-4
...
Create ApiError_zh_CN.properties
2022-04-04 02:49:00 -04:00
JaymenChou
f20fe9199f
Update ApiError_zh_CN.properties
2022-04-04 14:36:55 +08:00
91dee4a3b8
Merge pull request #80 from JaymenChou/patch-6
...
Create TransactionValidity_zh_CN.properties
2022-04-04 02:17:35 -04:00
0b89b8084e
Merge pull request #79 from JaymenChou/patch-5
...
Create TransactionValidity_zh_TW.properties
2022-04-04 02:17:24 -04:00
a5a80302b2
Merge pull request #77 from JaymenChou/patch-3
...
Create ApiError_zh_TW.properties
2022-04-04 02:17:02 -04:00
e61a24ee7b
removed electrum-ltc.bysh.me
...
this server often gives a false positive for phishing by some antivirus software.
2022-04-03 22:32:57 -04:00
JaymenChou
55ed342b59
Create TransactionValidity_zh_CN.properties
...
Add Simple Chinese For better understanding of logs
2022-04-03 13:27:52 +08:00
JaymenChou
3c6f79eec0
Create TransactionValidity_zh_TW.properties
...
Add Traditional Chinese For TransactionValidity Logs.
2022-04-03 13:25:32 +08:00
JaymenChou
590800ac1d
Create ApiError_zh_CN.properties
...
Add Simple Chinese Support For API Error Message
Hope it helps in understanding the API !
2022-04-03 12:43:18 +08:00
JaymenChou
95c412b946
Create ApiError_zh_TW.properties
...
Add Traditional Chinese support to API Responses
2022-04-03 12:40:27 +08:00
CalDescent
a232395750
Merge branch 'master' of github.com:Qortal/qortal
2022-04-01 11:24:56 +01:00
6edbc8b6a5
add decimal precision to download progress
2022-03-31 13:46:40 -04:00
f8ffeed302
updated BTC electrumx servers
...
added new and removed TCP, closed servers, and versions older than 1.16.0
2022-03-31 11:32:55 -04:00
e2ee68427c
removed TCP electrumx servers
2022-03-31 11:29:54 -04:00
74ff23239d
removed TCP electrumx servers
2022-03-31 11:27:56 -04:00
f1fa2ba2f6
added SSL electrumx servers
2022-03-31 10:02:31 -04:00
e1522cec94
updated LTC electrumx servers
2022-03-31 09:58:53 -04:00
8841b3cbb1
add spanish translations
2022-03-31 08:44:33 -04:00
CalDescent
94260bd93f
Decreased the number of retries for missing metadata, to reduce broadcast spam.
2022-03-30 08:23:22 +01:00
CalDescent
15ff8af7ac
Don't process trade bots or broadcast presence timestamps if our chain is more than 30 minutes old
2022-03-30 08:11:02 +01:00
CalDescent
d420033b36
Revert "Revert "Add Qortal AT FunctionCodes for getting account level / blocks minted + tests""
...
This reverts commit 59025b8f47
.
2022-03-30 08:07:07 +01:00
CalDescent
bda63f0310
Removed hardcoded "qortal-backup/TradeBotStates.json" from POST /admin/repository/data API, as it's no longer needed now that API keys are required.
2022-03-30 08:06:09 +01:00
54add26ccb
fixed typo
2022-03-25 23:39:41 -04:00
CalDescent
bbe15b563c
Added unit test to simulate recent issue.
...
This fails with the 3.2.2 code but now passes when using the latest fixes.
2022-03-19 20:41:38 +00:00
CalDescent
59025b8f47
Revert "Add Qortal AT FunctionCodes for getting account level / blocks minted + tests"
...
This reverts commit eb9b94b9c6
.
2022-03-19 19:52:14 +00:00
CalDescent
1b42c5edb1
Fixed NPE in runIntegrityCheck()
...
This feature is disabled by default so can be tidied up later. For now, the unhandled scenario is logged and the checking continues on.
One name's transactions are too complex for the current integrity check code to verify (MangoSalsa), but it has been verified manually. All other names pass the automated test.
2022-03-19 19:22:16 +00:00
CalDescent
362335913d
Fixed infinite loop in name rebuilding.
...
If an account is renamed and then at some point renamed back to one of the original names, it confused the names rebuilding code. The current solution is to track the linked names that have already been rebuilt, and then break out of the loop once a name is encountered a second time.
2022-03-19 18:55:19 +00:00
CalDescent
4340dac595
Fixed recently introduced issue in name rebuilding code causing transactions to be unordered.
...
This is the likely cause of inconsistent name entries across different nodes, as we can't guarantee that every environment will return the same transaction order from the SQL queries.
2022-03-19 18:44:16 +00:00
CalDescent
f3e1fc884c
Merge pull request #63 from catbref/master
...
Add Qortal AT FunctionCodes for getting account level / blocks minted
2022-03-19 11:32:39 +00:00
CalDescent
39c06d8817
Merge pull request #75 from catbref/name-unicode
...
Unicode / NAME updates.
2022-03-19 11:32:22 +00:00
CalDescent
91cee36c21
Catch and log all exceptions in addStatusToResources()
...
Some users are seeing 500 errors deriving from this code. This should hopefully allow more info to be obtained, as well as causing it to omit the status for resources that encounter problems.
2022-03-19 11:08:42 +00:00
CalDescent
12a4a260c8
Handle new sync result case.
2022-03-14 22:04:11 +00:00
CalDescent
268f02b5c3
Added automated test to ensure that the core's default bootstrap hosts are functional.
...
Whilst not strictly a unit test, this should allow issues with the core's bootstrap servers to be caught quickly.
2022-03-14 21:52:54 +00:00
CalDescent
13eff43b87
Fixed synchronizer issues which caused large re-orgs
...
Peers without a recent block are removed at the start of the sync process, however, due to the time lag involved in fetching block summaries and comparing the list of peers, some of these could subsequently drop back to a non-recent block and still be chosen as the next peer to sync with. The end result being that nodes could unnecessarily orphan as many as 20 blocks due to syncing with a peer that doesn't have a recent block (but has a couple of high weight blocks after the common block).
This commit adds some additional filtering to avoid this situation.
1) Peers without a recent block are removed as candidates in comparePeers(), allowing for alternate peers to be chosen.
2) After comparePeers() completes, the list is filtered a second time to make sure that all are still recent.
3) Finally, the peer's state is checked one last time in syncToPeerChain(), just before any orphaning takes place.
Whilst just one of the above would probably have been sufficient, the consequences of this bug are so severe that it makes sense to be very thorough.
The only exception to the above is when the node is in "recovery mode", in which case peers without recent blocks are allowed to be included. Items 1 and 3 above do not apply in recovery mode. Item 2 does apply, since the entire comparePeers() functionality is already skipped in a recovery situation due to our chain being out of date.
2022-03-14 21:47:37 +00:00
catbref
e604a19bce
Unicode / NAME updates.
...
Fix UPDATE_NAME not processing empty 'newName' transactions correctly.
Fix some emoji code-points not being processed correctly.
Updated tests.
Now included ICU4J v70.1 - WARNING: this could add around 10MB to JAR size!
Bumped homoglyph to v1.2.1.
2022-03-14 08:45:32 +00:00
CalDescent
f0d9982ee4
Made arbitraryDataFileHashResponses final, and use .sort() rather than .stream() to avoid new instance creation.
2022-03-12 09:43:56 +00:00
CalDescent
c65de74d13
Revert "Synchronize arbitrary data list removals, as it seems that SynchronizedList and SynchronizedMap aren't overriding removeIf() with a thread-safe version."
...
This reverts commit e5f88fe2f4
.
2022-03-12 09:40:13 +00:00
CalDescent
df0a9701ba
Improved logging in onNetworkGetArbitraryDataFileListMessage()
2022-03-11 16:51:19 +00:00
CalDescent
4ec7b1ff1e
Removed time estimations that are no longer correct or relevant.
2022-03-11 16:50:34 +00:00
CalDescent
7d3a465386
Including the number of hashes (even if zero) is now required in GetArbitraryDataFileListMessage, to allow for additional fields. Enough peers should have updated by now for this to be ok.
2022-03-11 16:50:11 +00:00
CalDescent
30347900d9
Tidied up one last place that was accessing immutableConnectedPeers directly. This makes no difference, but helps with code consistency.
2022-03-11 15:28:54 +00:00
CalDescent
e5f88fe2f4
Synchronize arbitrary data list removals, as it seems that SynchronizedList and SynchronizedMap aren't overriding removeIf() with a thread-safe version.
2022-03-11 15:22:34 +00:00
CalDescent
0d0ccfd0ac
Small refactor for code simplicity.
2022-03-11 15:11:07 +00:00
CalDescent
9013d11d24
Report as 100% synced if the latest block is within the last 30 mins
...
This should hopefully reduce confusion due to APIs reporting 99% synced even though up to date. The systray should never show this since it already treats blocks in the last 30 mins as synced.
2022-03-11 14:53:10 +00:00
CalDescent
fc5672a161
Use a more tolerant latest block timestamp in the isUpToDate() calls below to reduce misleading systray statuses.
...
Any block in the last 30 minutes is considered "up to date" for the purposes of displaying statuses.
2022-03-11 14:49:02 +00:00
CalDescent
221c3629e4
Don't refetch the file list if the fileListCache is empty, since an empty list now means that there are likely to be no files available on disk.
2022-03-11 13:08:37 +00:00
CalDescent
76fc56f1c9
Fetch the file list in getFilenameForHeight() if needed.
2022-03-11 13:07:16 +00:00
CalDescent
8e59aa2885
Peer getter methods renamed to include "immutable", for consistency with underlying lists and also to make it clearer to the callers.
2022-03-11 13:00:47 +00:00
CalDescent
0738dbd613
Avoid direct access to this.connectedPeers, as we need to use the immutable copy.
2022-03-11 12:58:11 +00:00
CalDescent
196ecffaf3
Skip calls to this.logger.trace() in ExecuteProduceConsume.run() if trace logging isn't enabled.
...
This could very slightly reduce load due to skipping the internal filtering inside log4j. Given that this method is causing major problems with CPU at times, I'm trying to make it as optimized as possible.
2022-03-11 11:59:18 +00:00
CalDescent
a0fedbd4b0
Implemented suggestions from catbref to avoid potential thread safety issue in peer arrays.
2022-03-11 11:27:13 +00:00
CalDescent
7c47e22000
Set fileListCache to null when invalidating.
2022-03-11 11:01:29 +00:00
CalDescent
6aad6a1618
fileListCache is now an immutable Map, which is thread safe. Thanks to catbref for this idea.
2022-03-11 10:59:07 +00:00
CalDescent
b764172500
Revert "Hopeful fix for ConcurrentModificationException in BlockArchiveReader.getFilenameForHeight()"
...
This reverts commit a12ae8ad24
.
2022-03-11 10:55:22 +00:00
CalDescent
c185d79672
Loop through all available direct peer connections and try each one in turn.
...
Also added some extra conditionals to avoid repeated attempts with the same port.
2022-03-09 20:55:27 +00:00
CalDescent
76b8ba91dd
Only add an entry to directConnectionInfo if one with this peer-signature combination doesn't already exist.
2022-03-09 20:50:03 +00:00
CalDescent
0418c831e6
Direct connections with peers now prefer those with the highest number of chunks for a resource. Once a connection has been attempted with a peer, remove it from the list so that it isn't attempted again in the same round.
2022-03-09 20:15:26 +00:00
CalDescent
4078f94caa
Modified GetArbitraryDataFileListMessage to allow requesting peer's address to be optionally included.
...
This can ultimately be used to notify the serving peer to expect a direct connection from the requesting peer (to allow it to temporarily bypass maxConnections for long enough for the files to be retrieved). Or it could even possibly be used to trigger a reverse connection (from the serving peer to the requesting peer).
2022-03-09 19:58:02 +00:00
CalDescent
a12ae8ad24
Hopeful fix for ConcurrentModificationException in BlockArchiveReader.getFilenameForHeight()
2022-03-09 19:46:50 +00:00
CalDescent
498ca29aab
Wait until a successful connection with a peer before tracking the direct request.
2022-03-08 23:07:08 +00:00
CalDescent
ba70e457b6
Default chunk size reduced from 1MB to 0.5MB
2022-03-08 22:44:43 +00:00
CalDescent
d62808fe1d
Don't attempt to create the data directory every time an ArbitraryDataFile instance is instantiated. This was using excessive amounts of CPU and disk I/O.
2022-03-08 22:42:07 +00:00
CalDescent
6c14b79dfb
Removed bootstrap host that is no longer functional.
2022-03-08 22:30:01 +00:00
CalDescent
631a253bcc
Added support for dark theme in loading screen.
2022-03-08 22:29:37 +00:00
CalDescent
4cb63100d3
Drop the ArbitraryPeers table as it's no longer needed
2022-03-06 13:01:09 +00:00
CalDescent
42fcee0cfd
Removed all code that interfaced with the ArbitraryPeers table
2022-03-06 13:00:11 +00:00
CalDescent
829a2e937b
Removed all arbitrary signature broadcasts
2022-03-06 12:58:01 +00:00
CalDescent
5d7e5e8e59
Dropped support of ARBITRARY_SIGNATURES message handling, as this feature has been superseded by the peerAddress in file list requests.
2022-03-06 12:46:06 +00:00
CalDescent
6f0a0ef324
Small refactor
2022-03-06 12:42:19 +00:00
CalDescent
f7fe91abeb
sendOurOnlineAccountsInfo() moved to its own thread, in preparation for mempow
2022-03-06 12:41:54 +00:00
CalDescent
7252e8d160
Deleted presence tests, as they are no longer relevant, and aren't easily adaptable to the new approach.
2022-03-06 12:03:18 +00:00
CalDescent
2630c35f8c
Chunk validation now uses MAX_CHUNK_SIZE rather than CHUNK_SIZE, to allow for a smaller CHUNK_SIZE value to be optionally used, without failing the validation of existing resources.
2022-03-06 11:43:28 +00:00
CalDescent
49f466c073
Added missing break;
2022-03-06 11:21:55 +00:00
CalDescent
c198f785e6
Added significant CPU optimizations to ArbitraryDataManager
...
- Slow down loops that query the db
- Check for new metadata every 5 minutes instead of constantly
- Check for new data every 1 minute instead of constantly
This could be further improved in the future by having block.process() notify the ArbitraryDataManager that there is new data to process. This would avoid the need for the frequent checks/loops, and only a single complete sweep would be needed on node startup (as long as failures are then retried). But I will avoid this additional complexity for now.
2022-03-06 11:21:39 +00:00
CalDescent
5be093dafc
Fix for "Synchronizing null%" systray bug introduced in 3.2.0
2022-03-06 11:00:53 +00:00
CalDescent
2c33d5256c
Added code accidentally missed out of commit 1b036b7
2022-03-05 20:44:01 +00:00
CalDescent
4448e2b5df
Handle case when metadata isn't returned.
2022-03-05 17:39:13 +00:00
CalDescent
146d234dec
Additional defensiveness in ArbitraryDataFile.fromHash() to avoid similar future bugs.
2022-03-05 17:25:48 +00:00
CalDescent
18d5c924e6
Fixed bug cased by fetchAllMetadata()
2022-03-05 17:25:14 +00:00