:IF: Colony - Command line edition. RELEASED, now in color!

To be clear on priority:

  1. key given at the user prompt
  2. $SECRET_KEY environment variable
  3. ant CLI wallet

Is this your proposal?

2 Likes

Id go with that order I haven’t seen a reason to use a cli generated wallet since launch.

Just set the private key for a metamask wallet and you don’t need to worry about losing the wallet during upgrades

2 Likes

I went with ant-cli code but agree with you.

Would you raise an issue on ant-cli?

Actually, check ant-cli behaviour first - I may have got muddled! :thinking:

1 Like

I’m not sure if >using< the one pod as shareable id is the best way of doing it

You’d have a display name, status message (?), location (?)… Possibly properties that overlap between apps but may not be desirable to be shared…
I think linking your atlas id and friends profile does make a lot of sense and has a very similar effect :star_struck:

For sharing properties across apps I think redirecting and using a certain syntax standard might make sense…
Apps register (in your account pod) what properties they could offer to share (status, location) and if ā€˜use global state’ it pushes the new state there/pulls it from there in intervals…

3 Likes

That makes sense. Segregating your data so you don’t share everything everywhere all the time would be very beneficial. I think a lot of it comes down to how people structure the data, and since all of this is mutable, it could be restructured at any time. If it was me, I think I would have a unique ID pod for each app, but it would reference other pods like a pile of lego bricks to build a unique collection of metadata. Something like this:

  • basic user info pod (name, status, location, avatar, profile, etc) things that you want to share everywhere, kind of a generic handle that people can find (this is me)
  • various friends pods → a list of addresses to other basic user info pods that I know so I can find them elsewhere. you may have different lists of friends on different apps, so you can slice and dice these however you want. The people I know on Atlas I also want to follow on Friends
  • app specific pod → stuff like settings, site specific avatar, screen name, app specific messages, anything that doesn’t really make sense to port between applications
  • other pods? → files you want to share, other semantic data, who knows.

Then when I fire up the app, it asks for my profile, I give them that address, and the app walks through all the data and referenced pod data and picks out what is applicable. The syntax is RDF and the pod structure, what is shareable comes down to which predicates/object types are something the end application can leverage. Ideally apps would coordinate so things ā€œjust workā€ out of the box, but my guess is that over time certain patterns will emerge and app builders will know that predicate ā€œXYZā€ is used for this function on these other apps, I’ll just use that too.

4 Likes

I claim ignorance into finding where this is being used in the dweb-cli codeberg. In dweb-lib, I did find functions to return the results of each type of key and a comment that implies that the environment variable for SECRET_KEY and WALLET get checked first.

1 Like

I have literally copied and pasted from ant-cli so you might look there. Essentially though, the command handlers get the wallet and pass this in the DwebClient struct (using code copied from ant-cli).

I don’t have a working laptop rn so not easy to guide you.

1 Like

AI generated tutorial documentation for colonylib

Similar to the tutorials generated by @Traktion for the node and client Codebase to Tutorial easy to follow tutorials from GitHub codebases with AI

4 Likes

It took a lot longer than I anticipated, but I finally got a new release in place! 3 days of that was fighting github to automatically build binaries for Linux, Windows, and Mac (both x86 and aarch64 flavors). High level updates:

For existing users, I changed the underlying schema to the final version, so you’ll need to wipe out your colony data directory and use a new seed phrase, otherwise you’ll have problems. From here on I don’t see any breaking changes to the low level data structures.

The CLI interface is the same, but there is a new genesis pod. I’ve indexed EVERYTHING I could find on the forum, atlas, and awesome. If you have other stuff you want to share, send me the info, or better yet, make your own pod and send me your pod address!

Quick start:

# in one terminal window run the following, enter a password, new seed phrase, and add your wallet private key (or set $SECRET_KEY):
colonyd

# in another terminal, run the following
colony add pod "my pod"
colony add ref "my pod" aaa518a2cf8260f6bebc769c16b8147ea215adf569696497b7fc1f250823d89a49990187e83fc0f9ae1cf3d44afb7dce
colony refresh --depth 0
colony search text "beg blag and steal"

Edit: If you would rather get the binaries from Autonomi, I have uploaded them there as well! No point sending your traffic to github :smile:

afea54f05bbc0e1369857fe23babfdff6a8d5894cd36a46d2e51151027d45f39 colony-x86_64-unknown-linux-musl
7022594f93821dfd9481ac8f113cff5d51232061522d1b472debbec21c5728cb colonyd-x86_64-unknown-linux-musl
443035d932927927ff7747cfd9b587c0285147c443d6768f8ac67ca45814529f colony-x86_64-pc-windows-msvc.exe
1a5b514664a787e858ac7ca6773248bb35a1817a3aef155ff0cb3f72a9ed5a20 colonyd-x86_64-pc-windows-msvc.exe
10d6dc280937d3cbdfceddd959582c3f1c1ac9ccc7d70d9ea2fe30a2cbf12188 colony-aarch64-apple-darwin
975af7e401cbce278c34006e2214843320327ffad41174ad4965b047d4134160 colonyd-aarch64-apple-darwin
4 Likes

I didn’t find that too hard but it’s much harder on Codeberg. I just copied someone’s [cough] Autonomi’s I think GH actions and it worked.

:+1: But not mine… really, ours! Just my suggestions and some adaptations based on feedback.

Great work!

3 Likes

Err.. ours :slight_smile: I think what you have will help us mesh multiple REST based servers without conflicts. Standards are good. Although I will say once we’re happy with it, we should write it into an AIP so that it can be more easily referenced and looks more ā€œofficialā€, a topic for another day :smile:

My biggest issue with build is that my rust RDF library (oxigraph) uses RocksDB under the hood, which is a C++ library. I had a horrible time building and statically linking this C++ library in Windows in a way that it didn’t completely block it by calling the program a virus. Linux and Mac, no problem, they just worked. I hate Windows, but it is everywhere, so I’ll deal with it to keep my users happy :rofl:

2 Likes

Yep, be my guest (when time is right)

Ah, ok, yet another Windows problem rather than CI. Codeberg CI is my problem though I think I have the key hurdle ready to jump. I just can’t focus on that today, or much at all outside a life thing that has cropped up.

2 Likes