CalDescent
d82da160f3
Added DHT-style lookup table to track file locations
...
This maps ARBITRARY transactions to peer addresses, but also includes additional metadata/stats to track the success rate and reachability.
Once a node receives files for a transaction, it broadcasts this info to its peers so they can update their records.
TLDR: this allows us to locate peers that are hosting a copy of the file we need.
2021-10-29 13:35:17 +01:00
CalDescent
54c8aac20d
Commented out unused forwarding code
2021-10-29 13:27:37 +01:00
CalDescent
05be5c1199
Version set to 2.0.0, given that this will ultimately be merged into the main qortal core. It makes sense to keep the version numbers in sync.
2021-10-25 19:06:48 +01:00
CalDescent
f19a65148a
Revert "Default minPeerVersion set to 0.1.0. TODO: revert this if ever merged into the main repo."
...
This reverts commit 9b4d832d17
.
2021-10-25 19:04:31 +01:00
CalDescent
a55fc4fff9
When validating an ARBITRARY transaction, ensure that the supplied name exists and is registered to the account that is signing the transaction.
...
This ensures that only the owner of a name is able to update data associated with that name.
Note that this doesn't take into account the ability for group members to update a resource, so this will need modifying when that feature is ultimately introduced (likely after v3.0)
2021-10-25 18:58:33 +01:00
CalDescent
35a7a70b93
Merge remote-tracking branch 'qortal/master'
2021-10-25 18:26:06 +01:00
CalDescent
3e0574e563
Added another missing block archive lookup relating to trade timestamps.
...
Note that this is unlikely to be the cause of some of the zero timestamps issue seen on a subset of nodes - there is still likely to be another problem that needs fixing.
2021-10-25 18:21:40 +01:00
CalDescent
69e557e70d
Delete .sha256 file which was left lying around after running the bootstrap unit tests.
2021-10-25 18:20:58 +01:00
CalDescent
1b846be5fc
Fixed bug in arbitrary transaction builder
2021-10-24 22:43:58 +01:00
CalDescent
707eb58068
Added testPatchBeforePut() unit test
2021-10-24 22:43:28 +01:00
CalDescent
8630f3be96
Added first end-to-end test of data storage
2021-10-24 19:08:09 +01:00
CalDescent
c90aeba286
Return ArbitraryTransactionData instead of a byte array, as it is more useful if the bytes are transformed separately.
2021-10-24 19:06:30 +01:00
CalDescent
5055cfc6cb
Removed unused imports
2021-10-24 17:43:28 +01:00
CalDescent
c222c4eb29
Updated expected hash of demo data as it has been updated.
2021-10-24 17:41:51 +01:00
CalDescent
6c01955561
Refactor to move arbitrary transaction building to its own class.
2021-10-24 17:41:28 +01:00
CalDescent
305e0f1772
Disable validation of previous hash unless validateAllDataLayers is true
...
We may not need to validate this at all now that we have the ability to validate the current layer, but I'll leave it as it could be useful for debugging. It is disabled by default so not an issue.
2021-10-24 15:35:51 +01:00
CalDescent
52a94e3256
Added "validateAllDataLayers" setting (default false)
...
When true, the hashes of every layer are validated when building a data resource. When false, only the final layer's hash is validated.
2021-10-24 14:37:29 +01:00
CalDescent
a418fb18b6
Hash the current state when creating a patch
...
This is included in the patch metadata and then validated every time it is rebuilt.
2021-10-24 13:00:21 +01:00
CalDescent
9cd579d3db
Another typo
2021-10-24 12:20:49 +01:00
CalDescent
e1a6ba7377
Fixed incorrect comment.
2021-10-24 12:03:22 +01:00
CalDescent
04aabe0921
Include the original file instead of a patch if the patch is larger than the original file.
...
This saves processing and disk space, as there is no point in applying a patch when the original file is smaller and can be included in its entirety.
2021-10-24 12:02:09 +01:00
CalDescent
8dd4d71d75
Significant rework of patches
...
- The "diff type" is now specified per file, allowing for different diff methods in each modified file.
- Patches will only be created when both the before and after files are less than 100kiB in size.
- Patches are validated after creation, and if invalid it will fall back to including the entire file.
This has identified a bug where patching fails for files without trailing newline characters, which still needs to be fixed. Until then, it will fall back to including the entire file in these cases.
2021-10-24 10:47:47 +01:00
49dd63af1e
updated BTC electrum servers
2021-10-23 00:46:02 -04:00
CalDescent
18c6f0ccc3
Merge pull request #60 from Tocoolmh58/master
2021-10-22 18:05:38 +01:00
55c50a4b5b
add API option to return inverse price ( #61 )
2021-10-22 18:04:53 +01:00
CalDescent
12b3267d5c
Added arbitrary data merge tests.
2021-10-22 11:49:15 +01:00
CalDescent
d6d564c027
Fixed refresh interval of loading screen
2021-10-17 16:55:32 +01:00
CalDescent
1fbd5f7922
Fix for issue causing tradeTimestamp to report as 0 for trades in archived blocks.
2021-10-17 09:52:59 +01:00
CalDescent
f0e13fa492
Arbitrary transaction names are now case insensitive
2021-10-15 13:58:27 +01:00
CalDescent
c8d5ac9248
Fixed bug in ArbitraryTransactionTransformer.getDataLength() when missing a name.
2021-10-15 11:32:08 +01:00
CalDescent
aa4f77d4de
Fixed merge issues relating to database updates. Existing data nodes will need to delete their db folder and resync.
2021-10-15 09:13:15 +01:00
CalDescent
f3ef112297
Merge remote-tracking branch 'qortal/master'
...
# Conflicts:
# .gitignore
# pom.xml
# src/main/java/org/qortal/controller/Controller.java
# src/main/java/org/qortal/gui/SysTray.java
# src/main/java/org/qortal/settings/Settings.java
# src/main/resources/i18n/ApiError_en.properties
# src/test/java/org/qortal/test/CryptoTests.java
# src/test/resources/test-settings-v2.json
2021-10-15 09:03:28 +01:00
CalDescent
bbb71083ef
Updated AdvancedInstaller project for v2.0.0
2021-10-13 19:11:42 +01:00
CalDescent
e2134d76ec
Bump version to 2.0.0
2021-10-13 18:16:50 +01:00
CalDescent
651372cd64
Bump version to 2.0.0-beta.7
2021-10-12 18:56:58 +01:00
CalDescent
581fe17b58
Added message to check the internet connection if the download cannot start.
2021-10-12 08:08:48 +01:00
CalDescent
af8608f302
Show full stack trace when bootstrapping fails for any reason.
2021-10-12 08:08:05 +01:00
CalDescent
290a19b6c6
Log the URL when downloading a bootstrap, to help with problem solving.
2021-10-12 08:01:47 +01:00
CalDescent
73eaa93be8
Added missing space in log entry.
2021-10-11 23:00:59 +01:00
CalDescent
7ab17383a6
Fix for NPE when serialized block bytes are unavailable.
2021-10-10 13:38:10 +01:00
CalDescent
b103c5b13f
Bump version to 2.0.0-beta.6
2021-10-09 17:46:20 +01:00
CalDescent
b7d8a83017
Log "Downloading bootstrap..." as well as showing it in the splash screen.
2021-10-09 17:46:08 +01:00
CalDescent
e7bf4f455d
Added missing repository.saveChanges() when reimporting data after creating a bootstrap.
2021-10-09 16:57:53 +01:00
CalDescent
a7f212c4f2
Create a .sha256 file to accompany each bootstrap
...
This can ultimately be validated after download, and can also be used to help coordinate updates on the various bootstrap hosts.
2021-10-09 16:57:19 +01:00
CalDescent
eb991c6026
Fixed issue causing bootstrap validation to be ignored before creation.
2021-10-09 16:29:40 +01:00
CalDescent
a78af8f248
Added SHA-256 file digest utility methods.
...
These read the file in small chunks, to reduce memory.
2021-10-09 16:22:21 +01:00
CalDescent
f34bdf0f58
Fixed issue causing minting accounts to be lost in some cases when auto bootstrapping.
2021-10-09 14:31:13 +01:00
CalDescent
ba272253a5
Bump version to 2.0.0-beta.5
2021-10-09 13:03:58 +01:00
CalDescent
9f488b7b77
Sleep for 5s before cleaning up temp path, in case this improves reliability on Windows.
2021-10-09 13:03:32 +01:00
CalDescent
3fb7df18a0
Delete temp directories at the beginning of the bootstrap process too, as Windows doesn't like deleting it at the end of the process.
2021-10-09 13:02:47 +01:00