CalDescent
4b1de108d1
Fixed bug in expected chunk count.
2021-07-03 18:42:42 +01:00
CalDescent
e46c735efa
Fixed recently introduced bugs with file management.
2021-07-03 18:05:17 +01:00
CalDescent
56da7deb4c
DataFile updates to simplify integration with arbitrary transactions.
2021-07-03 17:41:52 +01:00
CalDescent
5f4649ee2b
Major upgrade of arbitrary transactions
...
- Adds support for files up 500MiB per transaction (at 2MiB chunk sizes). Previously, the max data size was 4000 bytes.
- Adds a nonce, giving us the option to remove the transaction fees altogether on the data chain.
These features become enabled in version 5 of arbitrary transactions.
2021-07-03 17:40:02 +01:00
CalDescent
7cc2c4f621
Progress on website API endpoints.
2021-07-02 08:57:55 +01:00
CalDescent
cc449f9304
Added DataFile.chunkHashes() method which appends all hashes into a single byte array (32 bytes / 256 bits each).
2021-07-02 08:54:05 +01:00
CalDescent
28425efbe7
Added jsoup dependency - this was missing from an earlier commit.
2021-07-02 08:52:38 +01:00
CalDescent
8c3a22aa5c
Improved link replacement criteria.
2021-07-01 11:21:40 +01:00
CalDescent
f3e5933599
Fixed naming error in joinFiles API.
2021-07-01 11:18:46 +01:00
Marco Moesman
39d8750ef9
Merge branch 'Qortal:master' into master
2021-07-01 10:24:03 +02:00
CalDescent
52b0c244a8
Extend CHECKPOINT_LOCK to HSQLDBSaver.execute()
...
This is used when saving new data to the db, so also needs to be blocked if we are checkpointing or deciding whether to checkpoint.
2021-06-28 19:24:53 +01:00
CalDescent
ee95a00ce2
Hopeful fix for "Performing repository CHECKPOINT..." deadlock.
...
This is probably our number one reliability issue at the moment, and has been a problem for a very long time.
The existing CHECKPOINT_LOCK would prevent new connections being created when we are checkpointing or about to checkpoint. However, in many cases we obtain the db connection early on and then don't perform any queries until later. An example would be in synchronization, where the connection is obtained at the start of the process and then retained throughout the sync round. My suspicion is that we were encountering this series of events:
1. Open connection to database
2. Call maybeCheckpoint() and confirm there are no active transactions
3. An existing connection starts a new transaction
4. Checkpointing is performed, but deadlocks due to the in-progress transaction
This potential fix includes preparedStatement.execute() in the CHECKPOINT_LOCK, to block any new transactions being started when we are locked for checkpointing. It is fairly high risk so we need to build some confidence in this before releasing it.
2021-06-28 09:13:36 +01:00
11566ec923
set icon on status change
2021-06-27 03:45:15 -04:00
a78ff08202
add setTrayIcon function
2021-06-27 03:44:29 -04:00
ceb3969c8b
load icons into gui
2021-06-27 03:44:25 -04:00
6f048ef40e
add status icons
2021-06-27 03:41:49 -04:00
CalDescent
aac4fe37e8
Fixed API response description.
2021-06-26 10:28:22 +01:00
CalDescent
ebfa941a4f
Fixed some file separators.
2021-06-26 10:27:32 +01:00
CalDescent
47c70eea9e
Use system temp directory instead of making a "temp" subfolder when zipping files.
2021-06-26 10:11:34 +01:00
CalDescent
fe7c40cb7c
Reduced log spam.
2021-06-25 19:31:28 +01:00
CalDescent
8973626a4b
Fixed issue with temp directory on Linux.
2021-06-25 19:31:13 +01:00
CalDescent
ace5d999e2
Log a comma separated list of hashes after splitting a file into chunks, so they can easily be requested from another node using the //data/files/frompeer/{peer} API endpoint. Again temporary until the sync happens automatically.
2021-06-25 19:30:45 +01:00
CalDescent
52829a244b
More work on APIs to request files from peers. I won't spend too long making these perfect as they are mostly a temporary measure.
2021-06-25 19:28:39 +01:00
CalDescent
71c247fe56
Added POST /data/file/{hash}/build API, used to join multiple chunks together.
2021-06-25 19:28:01 +01:00
CalDescent
b34066f579
More work on HTML parsing.
...
The style tag parsing ideally needs rewriting using an actual CSS parser, but we can get away with this hacky approach in the short term.
2021-06-25 08:34:44 +01:00
CalDescent
b286c15c51
Optimized website serving, and added code to return the correct content types.
...
This is probably the most efficient way to process the data on the fly, but it's still not very scalable. A better approach would be to pre-process the HTML when building the file structure, and then serve them completely statically (i.e. using a standard webserver rather than via application memory). But it makes sense to keep it this way for development and maybe early beta testing.
2021-06-25 08:32:22 +01:00
Marco Moesman
aff4f6c859
Create TransactionValidity_nl.properties
2021-06-24 19:13:55 +02:00
Marco Moesman
1f8f73fa30
Create ApiError_nl.properties
2021-06-24 18:44:53 +02:00
Marco Moesman
620d6624a9
Create SysTray_nl.properties
2021-06-24 18:30:50 +02:00
JaymenChou
287f42ae64
Update and rename SysTray_zh.properties to SysTray_zh_SC.properties
...
Rename to zh_SC for better distinguish between zh_SC (Simple Chinese)and zh_TC(Traditional Chinese)
Rephrase some of the words for better understanding.
2021-06-24 11:42:48 +08:00
JaymenChou
d976c97d13
Create SysTray_zh_TC.properties
2021-06-24 11:31:46 +08:00
CalDescent
6d549b0754
Updated AdvancedInstaller project for v1.5.5
2021-06-23 19:57:03 +01:00
CalDescent
02dd64558f
Bump version to 1.5.5
2021-06-23 18:21:55 +01:00
CalDescent
ea5e2f5580
Added POST /site/preview API
...
This can be used to preview a site before signing a transaction and announcing it to the network. The response will need reworking to return JSON (along with most of the other new APIs)
2021-06-23 09:28:38 +01:00
CalDescent
b65c7a75fe
Handle relative links when parsing HTML.
2021-06-23 09:26:41 +01:00
CalDescent
39f5dce51c
Moved "directory" data uploads to new POST /site/upload API.
...
Directory uploads don't make much sense outside of website hosting, so it's best to make this API specific to that purpose.
2021-06-23 09:10:06 +01:00
CalDescent
f77ec1faf6
A very crude proof of concept which serves a website from a zipped (and in future, chunked) data blob. This forms the beginnings of the "website hosting" layer on top of the data storage. It needs a significant rework - most importantly so that we aren't serving every asset from memory, and also so that the correct content-type headers are returned, etc.
2021-06-23 08:43:21 +01:00
CalDescent
cd3a1e0159
Increased max file size to 1GiB. Will review this again later.
2021-06-23 08:33:53 +01:00
CalDescent
3f20fadb81
When zipping files, rename the outer folder to "data" instead of using the original folder name. This means that the data can be accessed deterministically without the need to first lookup the folder name.
2021-06-23 08:09:59 +01:00
CalDescent
1c6428dd3b
Added equivalent split and join test but this time using a 5.5MiB source file.
2021-06-23 08:07:35 +01:00
CalDescent
aca620241a
More work on data file split/join, and added a test.
2021-06-22 08:58:16 +01:00
CalDescent
808b36e088
Specify chunk size when splitting.
2021-06-22 07:44:34 +01:00
CalDescent
1613375cc0
Added more validation of files received in GET /data/file/frompeer
2021-06-21 19:03:34 +01:00
CalDescent
787ef957d2
Added support for uploading an entire directory via POST /data/upload/path
...
If a directory is specified instead of a file, the directory is automatically zipped before being split into chunks.
2021-06-21 19:02:49 +01:00
CalDescent
b915d0aed5
Only create the output file directories when we are actually writing a file there. This should prevent empty directories being created when initializing a nonexistent DataFile using a hash.
2021-06-21 08:40:52 +01:00
CalDescent
16dc5b5327
Include the data length in DataFileMessage, which is more similar to the approach used by ArbitraryDataMessage. These two message types are very similar, except arbitrary code currently has a requirement of one piece of data per signature, whereas DataFile code is independent and can support multiple files per transaction. Maybe the two can be combined at some point, but for now I'll keep them separate.
2021-06-20 19:49:10 +01:00
CalDescent
d25e98d9c4
Include peer connection ID in recently created log message.
2021-06-20 10:26:14 +01:00
CalDescent
227cdc1ec8
Log each sync attempt when our blockchain isn't up to date
...
Without this it can appear as though nothing is happening for a while after the app launches.
2021-06-20 07:25:25 +01:00
CalDescent
c2d0c63db0
Improved error logging.
2021-06-19 20:31:04 +01:00
CalDescent
f5c9807a48
Use contains() rather than equals() when matching a peer in /data/file/frompeer, so that the port can be optionally left out.
2021-06-19 20:29:05 +01:00