I wonder if the quote can be stored and re-used at a later time too? IIRC, it has an expiry, but it would be great to be able to pay for the chunks as a batch, then crack on with uploads as a seperate, more controlled way (retries, backoff, etc), then create the archive.
from ant fille --help
Download a file from the given address
Usage: ant file download [OPTIONS] <ADDR> <DEST_FILE>
Arguments:
<ADDR>
The address of the file to download
<DEST_FILE>
The destination file path
Options:
-q, --quorum <QUORUM>
Experimental: Optionally specify the quorum for the download (makes sure that we have n copies for each
chunks).
Possible values are: "one", "majority", "all", n (where n is a number greater than 0)
--timeout <CONNECTION_TIMEOUT>
The maximum duration to wait for a connection to the network before timing out
That timeout is supposed to be in seconds, right?
cos
willie@mir:~$ time ant file download --timeout 600 7ca61972d90c00d5e2ec085c24a6c09d11eb602c27637490ec6fc9b7f7cc7351 .
Logging to directory: "/home/willie/.local/share/autonomi/client/logs/log_2025-03-31_15-41-26"
🔗 Connected to the Network Error:
0: Failed to fetch Public Archive from address
1: General networking error: GetRecordError(QueryTimeout)
2: GetRecord Query Error QueryTimeout
3: Network query timed out
Location:
ant-cli/src/actions/download.rs:108
Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.
real 1m50.203s
user 0m6.566s
sys 0m2.652s
failed in a lot less than 600 secs…
willie@mir:~$ ant --version
Autonomi Client v0.3.9
Network version: ant/1.0/1
Package version: 2025.1.2.11
Git info: stable / f403cf6 / 2025-03-12
shall be 1.2.12 to be used
Still fails but takes a bit longer ![]()
willie@mir:~$ ant --version
Autonomi Client v0.3.10
Network version: ant/1.0/1
Package version: 2025.1.2.12
Git info: stable / c754d07 / 2025-03-20
willie@mir:~$ time ant file download --timeout 600 7ca61972d90c00d5e2ec085c24a6c09d11eb602c27637490ec6fc9b7f7cc7351 .
Logging to directory: "/home/willie/.local/share/autonomi/client/logs/log_2025-03-31_21-58-21"
🔗 Connected to the Network Error:
0: Failed to fetch Public Archive from address
1: General networking error: GetRecordError(QueryTimeout)
2: GetRecord Query Error QueryTimeout
3: Network query timed out
Location:
ant-cli/src/actions/download.rs:108
Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.
real 5m12.154s
user 0m14.376s
sys 0m5.449s
This must be incredibly frustrating for you and the rest of us.
AFAIK, there is no state kept. Quoting is simply a way to feed the quote contract to spit out a result. The upload then does that all over again and pays. I guess with a smart contract the payment being done within a short time after any quote will result in something that is close to the quote. Also now 7 nodes are giving figures so variances are less an issue since any node can change a lot but won’t change the result since 3 out of 7 are selected for pricing
Trying to hold nodes to a quoted price has its own issues. Especially if the network morphs between quoting and uploading even if only hours later, let alone days
got a succeeded download here
> ant file download -x 7ca61972d90c00d5e2ec085c24a6c09d11eb602c27637490ec6fc9b7f7cc7351 movie.mp4
⠁ Connecting to The Autonomi Network...
🔗 Connected to the Network
Successfully downloaded file at: 7ca61972d90c00d5e2ec085c24a6c09d11eb602c27637490ec6fc9b7f7cc7351
and can watch the ani properly.
That’s the second attempt.
It is bit unstable and have another waste of effort issue though.
btw. seems the file got uploaded using a customer build, which got the file split with 1MB chunk_size.
That seems to be the default. Maybe it should default to 4MB instead?
yeah, in future will be default to 4MB.
So far, it does default to 1MB, if carry out any custom build.
copying you with the -x no-verify flag worked with the latest rc
willie@gagarin:~$ time ant file download -x --timeout 600 7ca61972d90c00d5e2ec085c24a6c09d11eb602c27637490ec6fc9b7f7cc7351 movie.mp4
Logging to directory: "/home/willie/.local/share/autonomi/client/logs/log_2025-03-31_22-46-32"
🔗 Connected to the Network Successfully downloaded file at: 7ca61972d90c00d5e2ec085c24a6c09d11eb602c27637490ec6fc9b7f7cc7351
real 6m40.668s
user 0m14.020s
sys 0m8.767s
willie@gagarin:~$ ant --version
Autonomi Client v0.3.11-rc.1
Network version: ant/1.0/1
Package version: 2025.1.2.13
Git info: rc-2025.1.2-hotfix4 / 347c6df / 2025-03-28
Soory @anon26713768 I missed gems announcement
Heres what I have so far
willie@gagarin:~/projects/maidsafe/gems$ time gems upload -f ../test-sites/Kwak/img/vroom.png
Initializing client...
Client initialized.
Setting up wallet from environment variable...
Wallet setup complete using provided private key.
Reading file: "../test-sites/Kwak/img/vroom.png"...
Read 1023331 bytes from file.
Configuration for after upload completes:
Download and verify the uploaded data afterwards? [y/n]: y
Create a new archive for this upload afterwards? [y/n]: y
Attempting to upload file with retries (max 50 attempts)...
--- Upload Attempt 1/50 ---
(1/4) Chunk stored at: 806d0e5f638b6daea87dc1292d9cf76b38e9bea1bd0426842791a0b17aa4a974 (skipping, already exists)
(2/4) Chunk stored at: 97a8b824a4245a5e8f05fc01848d95cf6fd2f3a6d7e5b2a01a9131ec2e9aacc7 (skipping, already exists)
(3/4) Chunk stored at: 2a4af8cb68218b187e2145038562247687cf0883e4a8639ef05d3c377e756c58 (skipping, already exists)
(4/4) Chunk stored at: 6e9a66751331ed30570fe7f07a34785ee3eeda59503f052f78031516bd97a19b (skipping, already exists)
Upload successful on attempt 1!
Upload successful!
Cost: 0.00000000000000000000000000000000 AttoTokens
Data Address: 6e9a66751331ed30570fe7f07a34785ee3eeda59503f052f78031516bd97a19b
Proceeding with download and verification...
Downloading file using data_get_public...
Download successful! Fetched 1023331 bytes.
Verifying downloaded data...
Verification successful: Original and downloaded data match.
Saving verified file to "./vroom.png"
Proceeding with archive creation...
--- Performing Archive Action (using PublicArchive) ---
Creating new archive for DataAddress: 6e9a66751331ed30570fe7f07a34785ee3eeda59503f052f78031516bd97a19b (original path: "../test-sites/Kwak/img/vroom.png")
Attempting to upload new PublicArchive with retries (max 50 attempts)...
--- Archive Upload Attempt 1/50 ---
Uploading public archive referencing 1 files
(3/4) Chunk stored at: 3472b8a55608d40e11a6ce5064946c10c35fc541c036f8c2e8bb911dffa63e77
(2/4) Chunk stored at: a533f2a63b4574777b837a9bf271024e603575b5dfb85ce9185177ad2bb56691
(1/4) Chunk stored at: b828c2bb61671ce35810712aee0b5d67917587b3f2da8e1102771301d0041578
(4/4) Chunk failed to be stored at: a4290721f82ed7ffed95afffec714cc86ac17ad134df84d9e5df36f740203b59 (A network error occurred.)
(1/1) Chunk failed to be stored at: a4290721f82ed7ffed95afffec714cc86ac17ad134df84d9e5df36f740203b59 (A network error occurred.)
(1/1) Chunk failed to be stored at: a4290721f82ed7ffed95afffec714cc86ac17ad134df84d9e5df36f740203b59 (A network error occurred.)
(1/1) Chunk failed to be stored at: a4290721f82ed7ffed95afffec714cc86ac17ad134df84d9e5df36f740203b59 (A network error occurred.)
Archive upload attempt 1 failed: A network error occurred.. Retrying in 5 seconds...
--- Archive Upload Attempt 2/50 ---
Uploading public archive referencing 1 files
(1/4) Chunk stored at: 3472b8a55608d40e11a6ce5064946c10c35fc541c036f8c2e8bb911dffa63e77 (skipping, already exists)
(2/4) Chunk stored at: a533f2a63b4574777b837a9bf271024e603575b5dfb85ce9185177ad2bb56691 (skipping, already exists)
(3/4) Chunk stored at: b828c2bb61671ce35810712aee0b5d67917587b3f2da8e1102771301d0041578
(4/4) Chunk failed to be stored at: a4290721f82ed7ffed95afffec714cc86ac17ad134df84d9e5df36f740203b59 (A network error occurred.)
So up/download was OK and the prob was with archiving
I’ll let that run and try a few more.
Yeah, I think for now we are better off not using archives. At least we can get some use out of the network without them.
Or at least get data onto the network and exercise some of those nodes.
It took a while and I havent dared look what total cost in ETH and ANT but you can now try to download
Psychokiller.mp3
from
21c5e208e27e55ebfcd4800ac9772a755ffe27c8456d09f5ab71588f17bfa088
--- Upload Attempt 15/50 ---
(2/5) Chunk stored at: 71e64c08e895a1c55c7e096538ed8cd688624591d2dbd8a9a316cd6e83f520aa (skipping, already exists)
(3/5) Chunk stored at: 7ee480544301326be0294fb461ceb50b486535d7dc91fccd19194a63ecc21237 (skipping, already exists)
(4/5) Chunk stored at: 177207ca43882376623a375888792863d27aa8d348e410d45eeb872b44912630 (skipping, already exists)
(5/5) Chunk stored at: 21c5e208e27e55ebfcd4800ac9772a755ffe27c8456d09f5ab71588f17bfa088 (skipping, already exists)
(1/5) Chunk stored at: 99edd0e00c24e4c603bdcd87c7d3472b52d2fac0e921149005c280820aaf64ef
Upload successful on attempt 15!
Upload successful!
Cost: 0.00000000000000000000009314052367 AttoTokens
Data Address: 21c5e208e27e55ebfcd4800ac9772a755ffe27c8456d09f5ab71588f17bfa088
Proceeding with download and verification...
Downloading file using data_get_public...
Download successful! Fetched 4157440 bytes.
Verifying downloaded data...
Verification successful: Original and downloaded data match.
Saving verified file to "./PsychoKiller.mp3"
Skipping archive creation.
Upload process completed.
real 385m3.785s
user 3m33.225s
sys 1m47.264s
Thanks @anon26713768 ![]()
I have found the download may fail but if you try again it will eventually succeed. I may loop downloads until success too but hopefully that is not needed.
Are uploads with gems public by default?
Yes, it can only currently put public data. Wasn’t meant to do a whole lot other than me messaging about trying to get Buck Bunny forced upon the network
.
I could add it, but my focus is really missionctrl just waiting for python to catch up.
quite right too