CalDescent
60f96d15bd
When specifying a domain without a subdomain, add a www. version automatically.
...
Longer term we will probably need a 301 redirect in these cases for SEO purposes, but this is a nice convenience feature for now.
3 years ago
CalDescent
0328007345
Domain mapping now uses registered name instead of transaction signature.
...
There's no real need to maintain support for signature mapping anymore. Using this new method means that the latest version of a site is always served via the traditional domain name, whereas using transaction signatures caused older versions to be shown.
Example settings.json configuration:
"domainMapServiceEnabled": true,
"domainMapServicePort": 80,
"domainMap": [
{
"domain": "webdemo.qortal.uk",
"name": "QortalDemo"
},
{
"domain": "www.reqorder.org",
"name": "ReQorder"
}
]
3 years ago
CalDescent
3934120541
Return the data directly in GET /arbitrary/{service}/{name}, instead of a path to the data
3 years ago
CalDescent
651ca71126
Added transaction validity log.
3 years ago
CalDescent
e7cb33d8e2
Synchronize peer data lookups.
...
Without this we could broadcast the same data multiple times, due to more than one thread processing the same message from different peers.
3 years ago
CalDescent
f4c1671079
Removed the need to include public key in recently added API endpoints, as it can be derived from the registered name's owner.
3 years ago
CalDescent
f1939fdc2b
Added generic PUT, PATCH, and GET /arbitrary API endpoints
...
These will likely avoid the need for some of the /site APIs.
3 years ago
CalDescent
c9356d0ff5
Re-broadcast the arbitrary signatures message if it contains new data, so that the message finds its way to all online peers.
3 years ago
CalDescent
6b5d938a40
Added saveChanges() missing from previous commit, and a discardChanges() just in case.
3 years ago
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.
3 years ago
CalDescent
54c8aac20d
Commented out unused forwarding code
3 years ago
CalDescent
f19a65148a
Revert "Default minPeerVersion set to 0.1.0. TODO: revert this if ever merged into the main repo."
...
This reverts commit 9b4d832d17
.
3 years ago
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)
3 years ago
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.
3 years ago
CalDescent
69e557e70d
Delete .sha256 file which was left lying around after running the bootstrap unit tests.
3 years ago
CalDescent
1b846be5fc
Fixed bug in arbitrary transaction builder
3 years ago
CalDescent
707eb58068
Added testPatchBeforePut() unit test
3 years ago
CalDescent
8630f3be96
Added first end-to-end test of data storage
3 years ago
CalDescent
c90aeba286
Return ArbitraryTransactionData instead of a byte array, as it is more useful if the bytes are transformed separately.
3 years ago
CalDescent
5055cfc6cb
Removed unused imports
3 years ago
CalDescent
c222c4eb29
Updated expected hash of demo data as it has been updated.
3 years ago
CalDescent
6c01955561
Refactor to move arbitrary transaction building to its own class.
3 years ago
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.
3 years ago
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.
3 years ago
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.
3 years ago
CalDescent
9cd579d3db
Another typo
3 years ago
CalDescent
e1a6ba7377
Fixed incorrect comment.
3 years ago
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.
3 years ago
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.
3 years ago
QuickMythril
49dd63af1e
updated BTC electrum servers
3 years ago
QuickMythril
55c50a4b5b
add API option to return inverse price ( #61 )
3 years ago
CalDescent
12b3267d5c
Added arbitrary data merge tests.
3 years ago
CalDescent
d6d564c027
Fixed refresh interval of loading screen
3 years ago
CalDescent
1fbd5f7922
Fix for issue causing tradeTimestamp to report as 0 for trades in archived blocks.
3 years ago
CalDescent
f0e13fa492
Arbitrary transaction names are now case insensitive
3 years ago
CalDescent
c8d5ac9248
Fixed bug in ArbitraryTransactionTransformer.getDataLength() when missing a name.
3 years ago
CalDescent
aa4f77d4de
Fixed merge issues relating to database updates. Existing data nodes will need to delete their db folder and resync.
3 years ago
CalDescent
581fe17b58
Added message to check the internet connection if the download cannot start.
3 years ago
CalDescent
af8608f302
Show full stack trace when bootstrapping fails for any reason.
3 years ago
CalDescent
290a19b6c6
Log the URL when downloading a bootstrap, to help with problem solving.
3 years ago
CalDescent
73eaa93be8
Added missing space in log entry.
3 years ago
CalDescent
7ab17383a6
Fix for NPE when serialized block bytes are unavailable.
3 years ago
CalDescent
b7d8a83017
Log "Downloading bootstrap..." as well as showing it in the splash screen.
3 years ago
CalDescent
e7bf4f455d
Added missing repository.saveChanges() when reimporting data after creating a bootstrap.
3 years ago
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.
3 years ago
CalDescent
eb991c6026
Fixed issue causing bootstrap validation to be ignored before creation.
3 years ago
CalDescent
a78af8f248
Added SHA-256 file digest utility methods.
...
These read the file in small chunks, to reduce memory.
3 years ago
CalDescent
f34bdf0f58
Fixed issue causing minting accounts to be lost in some cases when auto bootstrapping.
3 years ago
CalDescent
9f488b7b77
Sleep for 5s before cleaning up temp path, in case this improves reliability on Windows.
3 years ago
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.
3 years ago