So, on a wired mikrotik connection, it failed with a similar ISO, but different error:
$ ant file upload -p ubuntu-24.04.2-live-server-amd64.iso
Logging to directory: "/home/autonomi/.local/share/autonomi/client/logs/log_2025-02-28_11-21-18"
🔗 Connected to the Network Uploading data to network...
Encrypting file: "ubuntu-24.04.2-live-server-amd64.iso"..
Successfully encrypted file: "ubuntu-24.04.2-live-server-amd64.iso"
Paying for 768 chunks..
Error:
0: Failed to upload file
1: Failed to upload file
2: Error occurred during payment.
3: Wallet error: ChunkPaymentsContract(RpcError(ErrorResp(ErrorPayload { code: -32000, message: "execution reverted", data: None })))
4: Chunk payments contract error: server returned an error response: error code -32000: execution reverted
5: server returned an error response: error code -32000: execution reverted
Location:
ant-cli/src/commands/file.rs:77
Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.
I tried 3 retries and I just got various shapes of this:
$ ant file upload -p ubuntu-24.04.2-live-server-amd64.iso
Logging to directory: "/home/autonomi/.local/share/autonomi/client/logs/log_2025-02-28_11-48-40"
🔗 Connected to the Network Uploading data to network...
Encrypting file: "ubuntu-24.04.2-live-server-amd64.iso"..
Successfully encrypted file: "ubuntu-24.04.2-live-server-amd64.iso"
Paying for 768 chunks..
Error:
0: Failed to upload file
1: Failed to upload file
2: Error occurred during payment.
3: Cost error: NotEnoughNodeQuotes(0e0ca1(00001110).., 3, 5)
4: Not enough node quotes for 0e0ca1(00001110).., got: 3 and need at least 5
Location:
ant-cli/src/commands/file.rs:77
Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.
Testing on VMs within one or two datacentres, likely connected by VERY fat pipes, is great for establishing actual functionality.
Testing on consumer grade hardware with retail fibre and ADSL is the only way to check real world functionality.
Am I totally wrong with that? Cos I think that for now we have a theoretically wonderful network that needs good bandwidth and professionally configured routers to function as intended.
To put it in an automotive context, manufacturers test new models both on the high speed oval tracks with pristine smooth tarmac,but also on sections of Belgian pave, in the Arctic and Sahara. Citroen would not release the 2CV until it could cross a ploughed field with a basket of eggs in the back.
We need to do more testing away from the smooth tarmac.
Also it was meant to prevent someone modifying the code to always quote cheaper and get all the income. Or quote too high to try and get winfall profits many times the normal price.
Lucky people, the average for the world with Gbps connections skewing the average a lot higher, the speed test sites show average upload speeds as less than 50Mbps.
But if this was not “modifying”, but a default way of doing things, everybody would try to offer cheap enough price. Those who have some edge there, offer cheaper, but competition is not unfair.
It’s not different from current system, where the price is set in code and those who can afford to run nodes with that price do, and others don’t.
It’s just that one way you are free to set the price according to your costs. The other way you are free to try to manage your costs according to price. Method is different, but end result the same.
To allow node operators free reign on price setting then you risk some just dropping the price, get all the chunks to their systems and then scram out of here. Network suffers.
Need to have price quote to be according to your node storage (& market) so that everyone can afford to run nodes. So by taking the mean quote value rather than the lowest we eliminate those trying to manipulate the market. The lowest price is not always the best as @Southside says.
Also imagine that I run up a lot of VPS nodes and have my price 5% lower than everyone else. I get to store all the chunks in the close area and the other nodes still have to store but never see anything, but are doing the work.
For redundancy the nodes have to cooperate and that includes the general price. Otherwise the few could get all the payments while the majority get little to none. At least paying the 3 closest to the mean means that the cost and rewards are being shared more evenly and encourages more participation and in a fairer manner for all.
Autonomi is very much a community minded network, the community of nodes have to work together
I had some trouble with Launchpad v0.5.5 because I couldn’t enter the ‘Options’ menu to upgrade, until I realized the ‘O’ is case-sensitive. I’m on Windows 10. I don’t know if that’s by design, but it was confusing because I kept pressing the letter ‘O’ and it didn’t work. I thought the node manager was stuck, but the letter ‘Q’ kept working to quit. ‘Q’ is case-insensitive.
The fact is the UX on the Launchpad is dreadful.
Inconsistent case-sensitivity, options shown on one page that only work on another, the list goes on.
This probably does not get enough attention and pushback because most of the experienced users are using antctl, Formicaio or NTracking/anm to manage their nodes and its left to the new users to find the limitations of LaunchPad.
And it is to my shame that I still have not got around to tidying up some of the loose ends and making it prettier.
It is far and away the most detailed and powerful method of managing and monitoring your nodes.
Buuuut I have to say Formicaio is quite powerful itself and in many cases Just Works out of the box - or rather out of the zip archive.
each to there own Formicaio is beautiful and i had a test install. anm and NTracking is more for the hardcore.
everything has a place here and @ambled is thinking about making a python port of anm.
its just making the right tools available to the right people at the right time.
Some time with wireshark could probably enlighten, but I see where you are coming from!
Tbh, the client should only need quotes for each batch of chunks. No need to get them all at once.
For cost queries, obviously we need them all as soon as possible, but that can still come in batches.
I haven’t looked at the code or done any analysis, but it’s surprising that just getting quotes is so heavy on the client and the local network. Surely, quotes should be tiny? What is it doing?