FORKING GOSSIP to change the UI:

Gossip is MIT licensed and so you can do anything you want with it, including forking it.

I don't mind. I don't consider it a slight against me, and I won't push back. In fact, I recommend forking gossip if you want to change the UI, and I will even help you by supporting new backend functions that you need to get your UI to work (presuming you will be merging in upstream changes outside of the UI).

I've had lots of requests to change gossip substantially. Every single one of them has been with regards to it's UI. Nobody suggests changing the storage engine, or creating async functions that wait on relay responses. Everybody seems to care only about the UI. Well guess what? I consider the UI a necessary evil, a thing that must be coded, but not something I have any real interest in, and generally a distraction from the much more interesting work. That is why I partnered with several other developers who are more keen on UI development.

The problem I have with all the requests to change gossip's UI is that they all go in different directions. They can't all happen. Everybody has a different vision for how they want the gossip UI to work. Which is why I think forks are a good idea. Everybody can get what they want, if they put in the effort.

So here is the thing: gossip's UI is cleanly divided from the rest of the code. The UI reads from global structures and sends messages to the overlord (but you could call overlord functions directly if your UI isn't immediate-mode and is async). It is currently designed for worst case: single thread, not async, immediate mode rendering. But that means it could easily handle all the other cases. You could rip it out and put in an entirely different UI... tauri, gtk4 ... you could probably even get it running under WASM and make the browser the UI.

Most people with grand UI designs don't also write rust code, so I'm not sure if anybody is going to take me up on this. But if anybody was thinking about it and hesitating because they didn't want to make waves, maybe this post will smooth that over.

Reminds me of Bitcoin. Satoshi's first client had a checkbox to do mining and there even was code for a market place which was not exposed in the UI yet.

Mining was the first part that was ripped out. I'm not entirely sure how the repos are organized but I think, many want to split the consensus from the wallet from the UI from the networking but it's a long way to go.

For Gossip, maybe moving the UI into a separate repo makes your point more clear.

Reply to this note

Please Login to reply.

Discussion

No replies yet.