Proposal “dash-go-node-client-m1“ (Active)Back

Title:dash-go: An Independent, Alternative Full Node Client for Dash
Owner:prasad-chainscore
Monthly amount: 909 DASH (61177 USD)
Completed payments: no payments occurred yet (4 month remaining)
Payment start/end: 2026-01-07 / 2026-05-02 (added on 2026-01-21)
Final voting deadline: in 24 days
Votes: 9 Yes / 55 No / 0 Abstain
Will be funded: No. This proposal needs additional 372 Yes votes to become funded.
External information: www.dash.org/forum/threads/pre-proposal-dash-go-an-independent-full-node-client-for-dash.68441/
Manually vote on this proposal (DashCore - Tools - Debugconsole):
gobject vote-many 825169793b87ec3fa7d4f3c341a0014d335e626b1898fd330d79aa68d68bd08c funding yes

Please login or create a new DashCentral account for comfortable one button voting!

Proposal description

Overview

We propose the development of dash-go, a new, independent full-node client for the Dash network, implemented from the ground up in Go.

The primary objective of dash-go is to strengthen Dash’s long-term network resilience by reducing reliance on a single node implementation, while also improving operator experience, observability, and developer reuse.

This proposal focuses on building a production-grade alternative client that can run alongside Dash Core.

Why do we need another node client?

Today, Dash relies on a single full-node implementation. While mature and battle-tested, a single-client architecture introduces systemic risk:
  • A critical bug, consensus issue, or security flaw affects the entire network simultaneously
  • Network upgrades and experimentation are constrained by one codebase
  • Node operators lack modern, built-in observability and deployment tooling
  • Developers cannot easily reuse Dash internals without running a full node
Many resilient blockchain networks mitigate this risk by maintaining multiple independent client implementations. Dash currently does not.

https://global.discourse-cdn.com/zcash/optimized/3X/1/c/1c753e4639a5ed84f843dba6fffdd1112b288ca5_2_690x460.jpeg

Proposal

dash-go
is an independent, alternative Dash full-node client written in Go, designed with a focus on the following pillars:

  1. Network Resilience: dash-go provides a second, independently implemented client that reduces single-client risk. In the event of a critical issue in the primary client, the network retains an alternative implementation capable of maintaining continuity.
  2. Modern Node Monitoring and Observability: dash-go includes native support for modern monitoring stacks such as Prometheus and Grafana. Masternode operators gain real-time visibility into node health, peer connectivity, sync status, and performance metrics without relying on external tooling.
  3. Modular and Extensible Architecture: The client is built as a set of decoupled libraries. This enables developers to reuse Dash components such as networking, consensus logic, or indexing in other applications without operating a full node.
  4. Easier Operator Onboarding: dash-go is designed for fast, reliable deployment through:
  •   One-click cloud images for AWS, GCP, and Azure
  •   Infrastructure-as-Code templates using Terraform and Helm
  •   Secure defaults, automated bootstrap, and preconfigured monitoring
This significantly lowers the barrier for new operators while reducing operational errors.

Scope of Work

Read the full Technical Specification:
[color=#333333]https://docs.google.com/document/u/1/d/e/2PACX-1vTsHCNuwF0NodA823Ujprij4XOUh5nVWu1Gjh4GWb2DfBZDKmfU5UL7cO2NEFPjDqgK19lxe-y9ATSS/pub
[/color]

To minimize risk and establish trust within the Dash community, the dash-go full-node specification is deliberately structured into two phases with multiple milestones.
  • Phase 1 consists of four milestones and focuses exclusively on delivering a fully independent consensus node client.
  • Phase 2 builds on this foundation by introducing Dash-specific services.
By the end of Phase 1, dash-go will be capable of independently validating the Dash blockchain and maintaining correct chain state.

Phase 1, Milestone 1:State and Block Import (4 Months)

Milestone 1 establishes the core consensus foundation of dash-go. The objective of this milestone is to enable deterministic block processing from genesis while maintaining byte-for-byte compatibility with Dash Core where consensus rules apply.

  1. Core Types and Consensus Serialization: All core Dash data structures will be defined as native Go structs, including Block, BlockHeader, and standard Transaction types. Consensus-critical serialization and deserialization routines (MarshalBinary / UnmarshalBinary) will be implemented to exactly match dashd’s little-endian byte-level encodings. Data structures for Phase 2 Special Transactions defined in DIP-0002 will also be included to ensure correct parsing, even though their validation logic is intentionally deferred.
  2. Transparent State Management (UTXO Set): The UtxoDB service will be implemented to manage the transparent Unspent Transaction Output (UTXO) set. This service will be built on a Go-native embedded key-value store such as PebbleDB and will define a deterministic database schema mapping transaction outputs to amounts and scriptPubKeys. Core state transition logic will handle verification, consumption, and creation of UTXOs during block processing.
  3. Block Import and Chain Validation: A dedicated Chain Service will be developed to handle block import and validation. For Phase 1, this includes:
  • Validating X11 Proof-of-Work on block headers
  • Verifying all transparent transactions against the UTXO set
  • Enforcing the 100-block coinbase maturity rule
  • Atomically applying block state changes to the UtxoDB
This ensures correctness, determinism, and crash safety during chain synchronization.

4. Cryptography Integration and Verification: This includes integrating the official Dash BLS signatures Go bindings and validating the native Go X11 implementation against historical Dash block headers using an exhaustive test harness to ensure bit-for-bit identical Proof-of-Work validation compared to dashd.

Team and Budget

Chainscore Labs
is a Web3 Research and Development firm founded in 2021. We specialize in delivering core, high-performance infrastructure for leading blockchain ecosystems. We have deep expertise in protocol engineering, cryptography, DeFi, and full-stack protocol development. We have worked with several L1s to develop node clients. More details in proposal spec. Website

To deliver Milestone 1, we are requesting a budget of $320,000, equivalent to $80,000 (~909 DASH) per month over 4 months. This funding will cover engineering costs for 6 FTE protocol engineers and a technical lead.
Closing

Dash has always prioritized reliability and real-world usability. Investing in an independent node client is a direct investment in the network’s long-term health.
We respectfully ask for your vote in support of dash-go. Thank you for your consideration.

Show full description ...

Discussion: Should we fund this proposal?

Submit comment
 
0 points,9 hours ago
Hi everyone, we’ve shared a forum post explaining why node diversity matters for Dash and importance of this proposal, including case studies from other networks.

We’d really appreciate you taking a moment to read the forum discussion and share any questions or feedback there. Thanks for taking the time to review and engage

https://www.dash.org/forum/threads/why-node-diversity-must-be-a-priority-for-dash-please-read-vote.69082/
Reply
2 points,1 day ago
In order to help voters reach an informed decision, and given that DCG maintains the reference implementation, I’d like to hear their thoughts on this proposal.
Reply
2 points,1 day ago
I think it's a lot of money, and will be a lot more for something that will barely be used just in the name of network resilience. We can see how it has gone with other chains. 99% of the time there is one implementation that everyone uses even when there are attempts at a second client.

Most likely than not this new software would be buggy, because all new software is, and people would stay on the stable one.

When the PO says: "A critical bug, consensus issue, or security flaw affects the entire network simultaneously" -> While this is true, if you have the bug affect only half the network all quorums would stop working.

Phase 1 is basically forking a bitcoin implementation in go, and dashifying it. This should not cost 200k USD. And if they did build it from the ground up... that would just be a waste of time and effort.

Phase 1 at completion would give a client equal on features of where Dash Core was in early 2015. Phase 2 is about 20x harder than Phase 1, so you can do the math on how much this would cost.

Even if the PO has the best of intentions with this proposal and a great team behind them it just doesn't make sense.
Reply
1 point,15 hours ago
In case of usage - I'd like to highlight Ethereum's case - https://clientdiversity.org/ - which runs multiple independent clients maintained by separate teams. This diversity has repeatedly prevented single-client bugs from becoming network-wide failures over the last decade:
- 2016 Shanghai DoS attacks: Primary (Geth) node client crashed, but alt client (Parity) kept the network alive.
- 2020 Geth consensus bug: OpenEthereum and Besu rejected invalid blocks, preventing a total chain failure.
- May 2023 finality stalls: Prysm and Teku failed under stress, Lighthouse stabilized the network.
- Jan 2024 Nethermind bug: Nethermind stopped processing blocks, network continued since it was a minority client.
- Dec 2025 Prysm incident: ~25% of validators went offline, but diversity turned a potential collapse into a recoverable event. https://finance.yahoo.com/news/ethereum-bug-nearly-triggers-network-120238691.html

Alternate clients do not need majority usage to be valuable. Their purpose is to contain inevitable bugs and reduce blast radius, turning catastrophic failures into recoverable incidents.

Bugs in any software are inevitable, no matter how good or reliable it has been so far. Great example of a bug in LLVM that could have exploited VM if not found by white hats - https://www.certora.com/blog/llvm-bug
This is why safety-critical infrastructure like even air traffic control mandates multiple independent software implementations.

Regarding P1 implementation choice - we're not forking an existing BTC client, that makes it dependent on its shared assumptions & failure modes. A clean-room implementation achieves truly independent client, codebase with fault isolation, which is the actual goal of client diversity.

We have structured the development in phases, client diversity will be a multi-year initiative, but one that must be achieved to make Dash resilient long-term, reduce systemic risk & ensure the network is not structurally dependent on a single codebase, team; making Dash a truly independent and diverse network.
Reply
0 points,20 hours ago
I dunno what to say. Dash’s price is roughly three times higher than it was just a few months ago, yet the argument is still that this is “too expensive” for the benefits it provides. It’s hard to understand at what point the expense becomes a rounding error.

You’re framing the entire value of a second implementation around quorums, as if the moment complexity enters the picture, the broader benefits of resilience no longer matter. There’s more to resilience than quorums. This proposal addresses single‑implementation risk; avoiding correlated failures, improving auditability and making sure the network isn’t dependent on one codebase or one team. Those benefits don’t disappear just because quorums introduce complexity.

Personally, I would absolutely run an independent implementation. I’ve been asking for this for years. Even if most people stick with the main client, having alternatives strengthens the ecosystem. A single reference model is common but that doesn’t mean it’s ideal. Dash has always talked about decentralization and this is one of the clearest ways to actually do it.

If dash’s quorum design makes alternative implementations nearly impossible, then this proposal ends up highlighting a deeper issue; a single codebase that behaves more like a product than a protocol. At the very least this should be acknowledged.
Reply
2 points,10 hours ago
I didn't say that it was impossible, just that it would require a lot of effort. Remember it took DCG years of effort and a lot of money to implement these systems. Even if this team is amazing and is twice as cost effective as DCG (possibly more with AI nowadays) it would still be a very high cost.
Reply
1 point,9 hours ago
It is high effort, and it might look like a high cost, but so is the risk of operating a billion-dollar network with a single implementation and no independent fallback when something goes wrong. Even viewed as insurance, the annual cost is <0.1% of the value it helps secure.
Reply
2 points,11 hours ago
It's almost as if you asked my opinion just so you could disagree with it :D
Reply
3 points,2 days ago
If you operate infrastructure on Dash, your feedback is especially valuable.

We want to focus dash-go on network resilience, node monitoring, better observability, easier onboarding and having a modular architecture. We believe this is a very important step toward growing Dash’s long-term resilience.

Thanks to everyone taking the time to review and vote.
Reply
1 point,2 days ago
Who will maintain this version over time if not DCG?
Reply
3 points,2 days ago
ChainScore Labs will be responsible for developing and maintaining this client as an independent implementation.

The broader goal is to strengthen Dash’s resilience by ensuring the network is not reliant on a single maintainer or codebase. Independent teams maintaining independent clients is a proven model used by several long-lived blockchain networks.
Reply