decred / dcrdex

The Decred Decentralized Exchange (DEX), powered by atomic-swaps.
Other
186 stars 97 forks source link

[Feedback Request] Zcashd node to be deprecated in Q2 2025 #3048

Open pacu opened 2 weeks ago

pacu commented 2 weeks ago

As you might already be aware, Zcashd is scheduled to be retired in April 2025 [1]. Zcash Engineers (ECC, Zcash Foundation and ZCG grantees) are working on a new software stack that will be based on the new Zebra [2] consensus node that will replace the existing Zcashd node and wallet functionality [3]. This is a huge overhaul of the existing software that drives the ecosystem and we need to hear your voice!

We want to ensure that the needs of existing zcashd users are met by the new stack, so we're reaching out to you now to get feedback on what zcashd functionality you rely on, so we can incorporate that feedback as we build out the new stack and work towards zcashd deprecation.

Action Items:

Thank you for your time and for supporting Zcash.

Best regards,

@mpguerra - Zcash Foundation, @decentralistdan - Electric Coin Company, @pacu - Zcash Community Grants Developer Relations.

References:
[1] ​​https://electriccoin.co/blog/ecc-roadmap-july-2024/
[2] https://github.com/zcashfoundation/zebra
[3] https://github.com/zcash/librustzcash/issues/1373#issuecomment-2373552815

pacu commented 4 days ago

Hi Folks! have you been able to take a look at this?

buck54321 commented 3 days ago

Please tell us which node you are currently running (Zcashd, Zebra or both)

We use the zcashd JSON-RPC interface.

The main purpose you use the node for (network security, wallet, block explorer backend, etc)

We offer Zcash as a wallet in our multi-wallet GUI. Users can trade Zcash using the built-in DEX functionality. We support shielded pools for Zcash, but trading occurs using transparent atomic swaps.

Our DEX server operators use zcashd as a backend for validating funds and swap txs as part of our trading protocol and reputation system.

Operating System you run the node with

Users have to run a full node (for now), so are presumably using some flavor of Debian. DEX server operators have run zcashd on both Debian and Arch.

[Important] Survey of the existing RPC Methods you currently use. For each RPC method detail:

  • Name of the RPC
  • A brief sentence with the Purpose, requirement or functionality that you use it for
  • Detail optional parameters that you might be setting for each RPC (if applicable).

[optional] Feedback on Feature Requests:

  • Is there functionality that Zcashd provides that falls short to meet your requirements? How could it be improved?
  • Is there functionality that you need or that you’d like to have that is not present in Zcashd?

I'll take this opportunity to respectfully offer some constructive complaints:

Estimating the number of nActionsOrchard required for ZIP-317 tx fees is seemingly impossible, so we have to use some shaky logic to get fee estimations for the user.

The way the fromaddress parameter works in the z_sendmany RPC is odd and causes us to have to do some dancing. It would be great if we could just specify an account number, since that's almost what it reduces to internally anyway.

As mentioned above, block median time is a critical component of script logic for HTLCs, but the RPC doesn't provide it anywhere, so we have to constantly iterate block headers and calculate it on the fly. I would have loved to see https://github.com/zcash/zcash/pull/6005 or similar implemented, but there's probably no point now.

The RPC is, somewhat understandably, a little discombobulated as a result of its historical development, esp. in regards to the implementation of accounts and ZIP-317. I look forward to seeing some of these oddities ironed out in whatever interface we migrate to.