I’ve been trying to contribute with Grin since late 2019, maybe a bit earlier I can’t remember precisely, I think it was earlier, and with “contributing” I mean: investing time coding. My contributions have been 100% oriented to Grin++ since Grin++ has been a one-man effort done by @david, I thought it was unfair and a real hard task to be focused on too many things: the backend (protocol, p2p, blockchain, etc…) and frontend (UI, mobile, translations, etc…) at the same time. I also wanted to have a nice wallet which I like and I’ve been “eating my own dog food” since then. Something I think Grin++ is doing great is that we are in touch with our users base, listening to the feedback and removing the noise when it is necessary (and it is weird to say “we” since there is no “we” in a free and open source project).
A new UI for Grin++ was published after a few iterations and I’ve been maintaining the code since then, keeping the UI aligned with the subsequent hardforks, fixing bugs and improving it, and offering support. I was funded for 6 months which helped to boost a mobile version that consists of a .NET cross-platform mobile application and an arm-compatible full Grin node which I also keep even with the master branch. I also wrote, and now, maintain and support the Address Availability Checker.
The desktop version is quite more stable right now, and I want to start tackling items from the Post 5.0.0 wish list like One-time use Slatepack addresses, but without stop improving the Android application.
I’m not a rocket scientist and the cool thing is that in open source projects no one is stopping anyone to contribute, therefore I could focus my energies on things that I find interesting (so do you, reader). Now, I want to share my roadmap to give an idea to the Community of what I’m doing and what I plan to do, but also, it is easier for me to keep you posted.
Here are the things I will be spending time on them:
After opening a funding request which I withdrew, I realized that the title of this feature doesn’t reflect all the work that should be done, this is also thanks to the conversations I had and the feedback received. This was a good thing because it helped me to have a better idea of what would be considered useful and valuable for the Community. Regarding this, here’s my TODO:
- Continue experimenting on how this should work and look on different branches.
- Iterate after getting the right flow and function.
- Write the official RFC.
- Iterate on the RFC until it gets approved.
- Include the changes to the Grin++ PR
- Merge these changes to the master branch after the proper code review.
- Write the Rust code depending on what the Rust team considers a minimum implementation.
- Open a PR to the Rust repository.
I want Grin++ mobile version to be stable enough and that’s why I will keep putting effort into this. Recently, after a small rant @whyisnoquestion and @Anynomous offered good feedback which I’m using and hopefully, the next release will include a new and better UI. I could list some things though:
- Add the possibility of send and receive grins via NFC.
- Add more translations to the UI.
- Add a troubleshooting screen to help users to recover the node when it fails.
What about iOS? Like I said above, the source code is cross-platform, it is written using Xamarin specifically. Again, no one is stopping anyone to contribute. Porting the node’s code to iOS in my free time is not motivating enough for me.
Without any specific order, there are few things where I would like to contribute on if no one is working on it:
- Wallet view key.
- Manual transaction acceptance.
- RPC API review.
- Tor support for nodes.
- Light node.
This could change with time because I can’t predict the future, I don’t know if at the moment when I could have time for this there is someone else working on it. I also understand that it is not recommended to work on an RFC without working on the Rust implementation.
I would like to see more external packages that make things easier for developers, but because I’ve been using the API, I think we need to review it and improve it a bit, this will require few things first, like a Testing Framework, and then compare the grin-wallet vs Grin++ to find what it could be a standard API. I think we’re not yet there since we are still experimental. The main goal is to simplify things for those who want to build on top of the Grin API.
I would like to see a BTCPay like server but for Grin. This is something that has my attention for a very long time, but before working on this I would like to have a better base, and working on invoice payment proofs will change some things. This doesn’t mean that I won’t work from to time designing an architecture for what I think could become a Payment Gateway for Grin.
I’ll keep offering support for Grin++ users, of course, I would like to iterate at least one more time the Grin++ Desktop UI, so I’m open to suggestions, if you’re a UX/UI designer, please feel free of reaching me out. If some other important feature is required to be added I’ll do my best to do it. I’ll try to get involved in local communities, I need some help, but also anything could happen and more contributors are needed.
Simple answer: whenever is ready. I’m doing all this in my “free time”, it is hard to establish a deadline or something. I’m also a human being, which means that I need to pay bills as everybody does.
Whenever I could buy a pizza using Grin or whenever I stop being motivated, yes, I’m a human being.
No one is stopping anyone to contribute, right now there are 15 translations for Grin++ UI that can be improved, also it would be nice to have a better website. I’m open to iterate the UI at least one more time. If you’re a Grin++ user please join the Grin++ Telegram group and contribute by offering support and helping others. If you’re in Germany and want to host Grin meetings to drink some beer and talk about Grin or Open Source, please just let me know.