Mmh I had the same problem on mainnet at first when updating scratchpads. I made 2 observations:
If you just wait until the update call return, then you immediately drop the autonomi client, then the update will not be properly propagated
If you wait for the update call to return, then get that pointer in a loop until the counter matches the one you expect, then you can drop the client safely and assume the pointer is now valid
That’s what I do for my scratchpads, I would expect that the pointer mechanism is not so different
That’s very interesting. Although it doesn’t make sense to me why that would work, because I don’t see how the client getting the Pointer would affect whether it is properly updated.
FYI @Champii, given what you’d said about Scratchpads - just before I read this I was thinking, I’ll use them alongside Pointers for my History type until Pointers work!
Now I’m not so sure. If you’ve found a way to ensure Scratchpads work though, I agree it should feed into getting Pointers to work too. I was wondering why one would work and not the other. It’s all a bit puzzling, and this has been the bain of my life for over a year now, first with Registers (old style), then with Pointers, and possibly if I try it, also Scratcpads! All have worked perfectly on local testnets and not on any of the live networks.
Oh well, welcome in my life haha. I’ve had a revelation yesterday that maybe I got all those failures (upload AND download) because of my network/wifi.
I’ve rented a VPS to try one more time, and I then had 0 (zero) errors, fluid processes, no weird NotEnoughCopies or RecordNotFound or Timeout (i get some of them here and there, but a retry always work)
I had very weird behavior that a scratchpad would download correctly the first 2 times. then RecordNotFound until the end of times. Very strange, but never had that on a dedicated VPS.
It also worked perfectly on testnet, but unconsistantly on mainnet.
Your problem made me think of that, maybe it’s related
Oh btw if you need a rubber duck to help debug your code, or just chat about this or that architecure choice, or anything, I’m always up to help a fellow rust developer
Thanks, that’s kind of you. TBH the Rust compiler makes it hard for me to write buggy code. Switching to Rust was such a great move by David - ten years ago.
But when I need to think things through I write. I’ve so solved many problems while writing up an issue or a request for help!
Same here, and for the little story I even got into Rust because of this project haha. To be able to read and recode the SafeNetwork to understand how it works and what were the main obstacles back then (still have my own working version of their Hashgraph algorithm PARSEC, and an embryo of dht based network with closed goupes and stuff ^^).
I never looked back, I’ve been doing rust for almost 10 years now, I don’t see this changing in the near future. Never had de chance to say that out loud so: Thank you MaidSafe <3
Haha, happened to me many times too ! And with the raise of AI it’s even easier for one to challenge his ideas and brainstorm quickly without living your IDE
Great to hear you have been following the project for so long. My Rust journey only started a few years ago and didn’t reallt gather steam until a year ago. I like it though.
I do find the strictness of the compiler both a blessing and a curse though. I like to hack unsafe prototypes together sometimes, which Rust works against me on. For building something in a more formal way, it works well though.
Kinda yes I’m not much of a poster, particularly when I have nothing to show ^^
Oh man, the concept of the network completely blew my mind at that time (still does), I built a few toy projects back then to use it but it was nowhere near the state of today. I’ve just been looking every few month to see the progress and then one day, “What do you mean ‘Released’?” And then here I am haha
That’s the beauty of it yes ! It forces you to code right from the beginning, which can be challenging for quick prototyping
As it’s such a slow news day I thought I’d mention…
dweb v0.7.0
This release brings dweb CLI bang up to date with enhancements for clients in the latest Autonomi release. I’ve also simplified / reduced quite a bit of the client-side code, and included support for connecting to the alpha network (untested because I wasn’t invited to join in with that ).
Code-name Winsome
I have an app working that I’m finishing off - just one more feature - and then will try uploading and using with the live network.
Maybe it would be a good idea to use it and dweb to pre-test the alpha network @chriso?
It uses Scratchpads, Pointer, GraphEntry and Archive (private) all via the dweb REST API. So it shows how to build standard web apps for Autonomi with nothing more than HTML/CSS/JavaScript. It’s a single page of HTML (~40k) so I will be able to upload it, the only question is whether it works with mainnet.
If it works live it will be a fun thing to play with. I hope to upload it in the next day or two.