everything moving so fast don’t manage to follow
dweb comes with full support for pointers, graphEntries, scratchPads and Chunks - right?
no further excuses not to develop awesome apps I guess if that’s the case
Yeah, though there was a further follow up PR. There will be another new RC that will go through a round of testing today and overnight, and hopefully we will be able to release that tomorrow.
At least in the staging environment anyway, we have none of the ‘not enough quotes’ and ‘chunk proof verification’ errors any more. That doesn’t always hold true on the much bigger production environment, but, it should hopefully be a significant improvement.
did I mention it’s pretty cool you’re active around here and drop some info for us?
I’ve learned how to use Pointer and GraphEntry, so adding them to the HTTP API will be straightforward. I’ll probably start with inspecting them as I already have that in the CLI.
The trickiest task is going to be defining a suitable HTTP API for the various Autonomy APIs, so any help with that would speed things up.
I have so many things on the to-do list!
You can see what’s implemented and the plans for different areas in the README. Click though to the dweb-cli:
@happybeing, @Traktion, how far away are we from having this kind of updateable list within Autonomi?
Also, can that kind of list be made so, that anyone can add their file to it by themselves, or does someone need to accept and add it?
dweb
has a versioned (ie updatable) website that contains links to other websites, and can be opened from the command line with dweb open awesome
. I’m about to try uploading some things and if that works this will be a part of that.
I’ll add people’s sites, including other lists of links to the dweb-awesome-sites website to build up a handy place for anyone to start.
That’s good, but would it be technically possible to have a site, that anyone can add their content, without nobody else needing to do anything?
It isn’t obvious to me how you would do this technically.
My plan is a more user chooses approach. So you can publish your list of sites, I publish mine, and Southside uses his plus yours, but ignores mine.
So you use an app/website on Autonomi and tell it whose lists you want it to show you, which it can combine and sort according to criteria you set etc.
So it will work as everyone can publish and share their stuff, and others can learn about and ‘subscribe’ to those lists.
Maybe not “directly” technically. But what is needed to update the mutable element (I don’t know what it is called nowadays)? Some sort of credentials? Can those be made public so that anyone can use them? A little like publishing an admin password of this forum in this forum.
the most difficult question probably is how to do it without it easily being flooded with trash and/or without others being able to remove anything else and just appending stuff …
Mutable data is tied to a public key, which means you need the wallet secret key to update it, so it’s not just about spam. I leave you smart folk to mull how to get around this without bots grabbing the funds as soon as they are added for an update!
And the payment needs to come from that secret address?
As far as I know. Maybe that can be changed, maybe in future IDK.
Is cargo install dweb-cli
working yet or do I need to git pull and cargo build --release
?
It’s not something I’ve had chance to look into yet.
It will have to be possible to create any sort of interactive website with though.
Maybe pointers could be used to show where some data should be pushed to by another party? If a sequence of those could be derived from a seed, perhaps that would work?
I’ve just been head down with (async) uploads and (streaming) downloads recently though. The plan is to move to other API features after.
cargo install won’t give you anything useful until I publish. You can build from source, but there won’t be much you can do until I upload the dweb-awesome-sites website (featuring vroom). You can get ready, but hopefully I’ll get to publish tomorrow.
Struggling to upload the last 5 of a 20 file directory right now, but after that I have a single file site to upload and I’ll be set.
Yeah I was trying and failing to re-upload vroom with minimal changes last night.
I will try fix the CSS so the txt is placed more intelligently and add a few links tonight
./dweb publish-new --files-root ~/projects/maidsafe/test-sites/kwickkwack/
Dweb Autonomi client initialising...
🔗 Connected to the Network -> public network evm-arbitrum-one
DEBUG publish_or_update_files()...
Uploading files to network...
DEBUG publish_files() files_root '"/home/willie/projects/maidsafe/test-sites/kwickkwack/"'
Uploading files from: "/home/willie/projects/maidsafe/test-sites/kwickkwack/"
CONTENT UPLOADED:
4a00668baa623e3e1a6e19327e2a0f2908aa607ed77549e70337ba56e99a1693 "kwickkwack/css/vroom.css"
6e9a66751331ed30570fe7f07a34785ee3eeda59503f052f78031516bd97a19b "kwickkwack/img/vroom.png"
7b65c2774e51cc20b034ce4a3f99dd2d29119f9a1628c419558804159ca4326d "kwickkwack/index.html"
Creating History on network...
DEBUG History::create_online(kwickkwack)
DEBUG create_graph_entry()
DEBUG entry_secret_key: 082d640935fff9c86db5a91757680ce18372b3b2206b87bef398ac607c8e8b19
DEBUG next_public_key : 932f5c1184dc1de6ed8b464e8fa823d5aabf610a0ce0a1177a9336416c2253b04df078d6f40aa47f62b0fc7751b3d28d
DEBUG creating GraphEntry::new(
owner : b39d6c5f0a8eb82446e5dcd6d52ba25e896eb676bc76ada8ee64edb072222ef577da9f1308297d084fe96d257b266387
parents : []
content : ee383f084cffaab845617b1c43ffaee8b5c17e8fbbb3ad3d379c96b5b844f24e
descendents: [932f5c1184dc1de6ed8b464e8fa823d5aabf610a0ce0a1177a9336416c2253b04df078d6f40aa47f62b0fc7751b3d28d])
DEBUG returning created next_entry graph entry with address b39d6c5f0a8eb82446e5dcd6d52ba25e896eb676bc76ada8ee64edb072222ef577da9f1308297d084fe96d257b266387
(showing GraphEntry addresses of parents/descendents)
owner : b39d6c5f0a8eb82446e5dcd6d52ba25e896eb676bc76ada8ee64edb072222ef577da9f1308297d084fe96d257b266387
parents : []
content : ee383f084cffaab845617b1c43ffaee8b5c17e8fbbb3ad3d379c96b5b844f24e
descendents: [9386eecd51edc97e34c8f1241decb5173eead571b1d256d6af5362c8933748bb34b146c585931dacce97116ec46d02a9])
DEBUG graph_entry_put() at b39d6c5f0a8eb82446e5dcd6d52ba25e896eb676bc76ada8ee64edb072222ef577da9f1308297d084fe96d257b266387
DEBUG create_pointer_for_update()
DEBUG created pointer at b1c686dda832cce06855b6d5dc8a1500fb84cdf49cc27ccf795114ef7ee4a6f6848e70bf2dbcb396d494143a9d7d6c39
DEBUG History::new() created new pointer at f5187a747191eda02ea2b0c4a2876615cb9300cfb833bcb382cdb2ea15c0075d
Updating History...
DEBUG History::update_online()
Updating History at b39d6c5f0a8eb82446e5dcd6d52ba25e896eb676bc76ada8ee64edb072222ef577da9f1308297d084fe96d257b266387
DEBUG pointer counter: 0, head address: b39d6c5f0a8eb82446e5dcd6d52ba25e896eb676bc76ada8ee64edb072222ef577da9f1308297d084fe96d257b266387
DEBUG create_next_graph_entry_online() with content 88702738fde5d09182aa98e93ee17f86c11c8e3b100a8ff675e56f7077af52fc
DEBUG head_address: b39d6c5f0a8eb82446e5dcd6d52ba25e896eb676bc76ada8ee64edb072222ef577da9f1308297d084fe96d257b266387
DEBUG history_get_graph_entry_and_next_derivation_index()
DEBUG returning (b39d6c5f0a8eb82446e5dcd6d52ba25e896eb676bc76ada8ee64edb072222ef577da9f1308297d084fe96d257b266387, e601e0a0aea26ab7437a905f7195b2d5e2e6be09d5574b6c12e3ac2fd1cd48a5)
DEBUG create_graph_entry()
DEBUG entry_secret_key: 082d640935fff9c86db5a91757680ce18372b3b2206b87bef398ac607c8e8b19
DEBUG next_public_key : 9386eecd51edc97e34c8f1241decb5173eead571b1d256d6af5362c8933748bb34b146c585931dacce97116ec46d02a9
DEBUG creating GraphEntry::new(
owner : 9386eecd51edc97e34c8f1241decb5173eead571b1d256d6af5362c8933748bb34b146c585931dacce97116ec46d02a9
parents : [b39d6c5f0a8eb82446e5dcd6d52ba25e896eb676bc76ada8ee64edb072222ef577da9f1308297d084fe96d257b266387]
content : 88702738fde5d09182aa98e93ee17f86c11c8e3b100a8ff675e56f7077af52fc
descendents: [9386eecd51edc97e34c8f1241decb5173eead571b1d256d6af5362c8933748bb34b146c585931dacce97116ec46d02a9])
DEBUG returning created next_entry graph entry with address 9386eecd51edc97e34c8f1241decb5173eead571b1d256d6af5362c8933748bb34b146c585931dacce97116ec46d02a9
(showing GraphEntry addresses of parents/descendents)
owner : 9386eecd51edc97e34c8f1241decb5173eead571b1d256d6af5362c8933748bb34b146c585931dacce97116ec46d02a9
parents : [b39d6c5f0a8eb82446e5dcd6d52ba25e896eb676bc76ada8ee64edb072222ef577da9f1308297d084fe96d257b266387]
content : 88702738fde5d09182aa98e93ee17f86c11c8e3b100a8ff675e56f7077af52fc
descendents: [a07849d4fd97c1401189116a69f0d43a937ec94baa3c0dd83dd4d657cd089dce8a78f47c0c1ee7dc3c56728eb5787e5d])
DEBUG new_entry: GraphEntry { owner: PublicKey(1386..c535), parents: [PublicKey(139d..936a)], content: [136, 112, 39, 56, 253, 229, 208, 145, 130, 170, 152, 233, 62, 225, 127, 134, 193, 28, 142, 59, 16, 10, 143, 246, 117, 229, 111, 112, 119, 175, 82, 252], descendants: [(PublicKey(1386..c535), [59, 34, 35, 129, 23, 186, 174, 194, 152, 248, 124, 77, 51, 239, 236, 56, 21, 18, 99, 195, 74, 143, 241, 109, 252, 226, 165, 167, 2, 67, 226, 61])], signature: Signature(02ec..93ec) }
DEBUG new_entry address: 9386eecd51edc97e34c8f1241decb5173eead571b1d256d6af5362c8933748bb34b146c585931dacce97116ec46d02a9
DEBUG Failed graph_entry_put() - Network error
History update online cost: 0.000002914330000000 Gas
History update online cost: 0.000000000055882197 ANT
Failed to update History:
0: failed to create next GraphEnry: Failed graph_entry_put() - Network error
Location:
/home/willie/projects/maidsafe/dweb/dweb-lib/src/trove.rs:937
Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.
Failed to publish files: Failed to update History:
0: failed to create next GraphEnry: Failed graph_entry_put() - Network error
Location:
/home/willie/projects/maidsafe/dweb/dweb-lib/src/trove.rs:937
Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.
Publish new cost: 0.000020021310000000 Gas
Publish new cost: 0.000000095125023858 ANT
Error:
0: Failed to update History:
0: failed to create next GraphEnry: Failed graph_entry_put() - Network error
Location:
/home/willie/projects/maidsafe/dweb/dweb-lib/src/trove.rs:937
Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.
Location:
I can see sucess above and I can see a sclerotic network getting in the way of meaningful testing.
Same with @josh’s efforts which if they could have been tested a bit more, I’m sure we’d all be playing with already. But no point in announcing that now, it would just be a frustrating disappointment at this time.
Tip: save the following file as ~/.dweb-rates and check the storage costs dweb prints:
EDIT: I should say save it and then source ~/.dweb-rates
before running dweb, or of course put it in your .bashrc
# Format of each environment variable: <RATE>,<LABEL>,[<DATE>]
# where:
# RATE is the conversion factor from ANT to a currency
# LABEL is a short name for the currency (e.g. "GBP, USD")
# DATE is optional, a date-time in UTC for the rate
#
# Note: for now DATE should be left blank until support is added to dweb-lib
#
# Valid variable are:
# DWEB_RATE_ANT for ANT, the Autonomi Network Token
# DWEB_RATE_ETH for Eth and Arbitrum One Eth
#
# Example:
# export DWEB_RATE_ANT=0.15,GBP,
#
export DWEB_RATE_ANT=0.15250,£, # 9/3/2025
export DWEB_RATE_ETH=1656.93,£, # 9/3/2025
I think it could be useful property to make data payment so, that it doesn’t matter where the payment comes from. Someone could ask for a quote and someone else could pay.