I have been working on improving and updating Grin++ API in the last months, for that I have brought back to life the CLI version which allows me to experiment the changes freely and without affecting the current users of the UI. I am also improving multiplatform support especially for ARM64.
Instead of using TypeScript, I have rewritten the CLI tool in Python. To produce the standalone executables I have chosen cx-Freeze.
The main goal is to make the Grin++ API compatible with the grin-wallet API of the Rust implementation, at least in the basic functionalities. So far so good. Those developers building something on top of Grin will be able to swap nodes/wallets in case they need to.
I’m still not sure if I’m going to open an RFC with my thoughts based on these last few months working on this. Maybe.
I have been distracted by experimenting with Nostr. Nostr is a simple, open protocol that enables global, decentralized, and censorship-resistant “social media”. It bothers me, so to speak, that even most people associate Nostr with social media. From a technical point of view, I don’t see how Nostr could scale in real life to withstand 1 million users, nor why people would want to not have control of their own data by spreading content everywhere with no opportunity to exercise their right to “be forgotten”. But that would be an irrelevant discussion in relation to Grin.
You can get the nostr pubkey with a simple command like this:
As far as Grin is concerned, Nostr seems to be a perfect fit for Grin. This is how a Grin transaction looks like on Nostr:
That’s an encrypted slatepack sent as a DM from one wallet to another wallet using the CLI… this is just pure beauty
I deployed a nostr expensive relay paid with Monero:
What to expect
I want to complete what I started. I believe it is worth the effort to give users the opportunity to use Nostr as a method of transportation. Nostr is safe, fast, and relatively private. I would say, private enough, one can derive several pubkeys to increase privacy. I still not 100% user how to combine Nostr and Grin, but so far the basics are working. I will be releasing the code soon so anyone can experiment.
It would be very easy to create a paywall for a relay payment using Grin instead of using BTC or Monero I think I could do it as an exercise to put into practice the changes in the Grin++ API.
I would like to read your opinions about Nostr+Grin. If you have any suggestions on what Grin’s transactions at Nostr could look like, let me know.