NixOS / nixpkgs

Nix Packages collection & NixOS
MIT License
17.68k stars 13.82k forks source link

Housekeeping: Improve blockchain stuff organization and consistency #103890

Open RaghavSood opened 3 years ago

RaghavSood commented 3 years ago

I would like to clean up our blockchain packages and modules a bit.

There's a number of small issues which make production level deployments somewhat harder to deal with. This effort would mostly be in reorganizing the actual layout of the derivations in the package tree, and on the modules.

This issue is intended to serve as a living cleanup tracker and will be updated with actionable items during the cleanup process as well as due to any discussions below.

Some of the key issues I intend to tackle are:

  1. Better organization of the blockchain packages - rippled is floating on its own in pkgs/servers, most of the others are in pkgs/applications/blockchains
  2. Of the stuff in pkgs/applications/blockchains, some is in bare derivations at the top level, some are in folders, and it's all mixed together with non-nodes such as electrum (a wallet, not a node)
  3. Some of the stuff is far out of date, either because there are issues with building the updates (such as zcash) or because things have changed upstream with no active maintainers here (parity rebranding to openethereum for the ETH client, etc)
  4. The modules are in varying states of completeness - Bitcoin is in pretty good shape, especially with the new named instances update, but many others don't reflect the current configuration set, or have very little configuration available. It would be good to have some consistency here, such as named instances for all nodes, more complete module configuration surface, and removal of deprecated options.
  5. We're missing many newer nodes such as Algorand - I have derivations for many of these which we use internally (I work at an exchange), and will be upstreaming them

I'm also happy to take over maintainership of many of the unmaintained packages, as well as do all of the above as cleanup and housekeeping.

Would be interested in hearing any other proposals or objections

RaghavSood commented 3 years ago

cc @adisbladis @prusnak @mmahut

mmahut commented 3 years ago

@RaghavSood thank you for working on this! Of course, any improvement to the current situation is very welcome.

Mic92 commented 3 years ago

Go for it!

bachp commented 3 years ago

@RaghavSood I'm currently working on better support for Ethereum which seems relevant to this issue.

RaghavSood commented 3 years ago

@bachp That's great! Let me know if you need any help or review - I've been working on putting together derivations for other ethereum based projects like BSC etc.

My current (rough) plan is to start by doing top level organization in the form of blockchain/ethereum, blockchain/bitcoin etc, followed by various nodes at a second level for each network (such as bitcoind and btcd).

Next would be to standardize the modules to follow the current bitcoin module form of named services, so that testnets and mainnets can run concurrently.

Let me know if there is anything I can help with!

stale[bot] commented 3 years ago

I marked this as stale due to inactivity. → More info