# Mining memory harndess removed?

**URL:** <https://talk.neptune.cash/t/mining-memory-harndess-removed/293>\
**Category:** General\
**Tags:** mining\
**Created:** [May 17, 2026, 8:21am UTC](https://talk.neptune.cash/t/mining-memory-harndess-removed/293 "2026-05-17T08:21:41Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![master](https://talk.neptune.cash/user_avatar/talk.neptune.cash/master/32/132_2.png) [@master](https://talk.neptune.cash/u/master)\
**Post date:** [May 17, 2026, 8:21am UTC](https://talk.neptune.cash/t/mining-memory-harndess-removed/293/1 "2026-05-17T08:21:41Z")

</div>

I am trying to understand is this true or not?  
Code says that after block 38000 memory hardness will be removed.  
So that practically would mean that its not needed to have a lot of gpu memory to mine NPT?

Source: neptune-cash v0.10.2 (tag `neptune-cash-v0.10.2`, commit `add24b67`)\*\*

* * *

**1. Block height constant**

`src/protocol/consensus/consensus_rule_set.rs`, lines 29–31:

```rust
/// Height of 1st block changing PoW algorithm to drop memory hardness
pub const BLOCK_HEIGHT_HARDFORK_BETA_MAIN_NET: BlockHeight =
    BlockHeight::new(BFieldElement::new(38_000u64));

```

* * *

**2. `memory_hard_pow()` explicitly returns `false` for HardforkBeta**

Same file, lines 123–130:

```rust
pub(crate) fn memory_hard_pow(&self) -> bool {
    match self {
        ConsensusRuleSet::Reboot => true,
        ConsensusRuleSet::HardforkAlpha => true,
        ConsensusRuleSet::TvmProofVersion1 => true,
        ConsensusRuleSet::HardforkBeta => false,
    }
}

```

Every rule set before HardforkBeta returns `true`. HardforkBeta is the only one that doesn’t.

* * *

**3. `validate()` skips all tree-path checks for HardforkBeta**

`src/protocol/consensus/block/pow.rs`, lines 624–643:

```rust
pub(super) fn validate(
    self,
    auth_paths: PowMastPaths,
    target: Digest,
    consensus_rule_set: ConsensusRuleSet,
    parent_digest: Digest,
) -> Result<(), PowValidationError> {
    let pow_digest = auth_paths.fast_mast_hash(self);
    let meets_threshold = pow_digest <= target;
    let leaf_prefix = match consensus_rule_set {
        ConsensusRuleSet::Reboot => auth_paths.commit(),
        ConsensusRuleSet::HardforkAlpha | ConsensusRuleSet::TvmProofVersion1 => parent_digest,
        ConsensusRuleSet::HardforkBeta => {
            if !meets_threshold {
                return Err(PowValidationError::ThresholdNotMet);
            }
            return Ok(()); // ← early return, no MTree::verify() calls
        }
    };
    // ... MTree::verify(path_a), MTree::verify(path_b) — only reached pre-Beta

```

The HardforkBeta arm returns `Ok(())` immediately after the threshold check. The 42 GB `GuesserBuffer` (two `2^29`-entry Merkle trees) and the 63-index Tip5 path derivation are completely bypassed. Post-Beta mining is a pure hash preimage search with no memory requirement.

---

<div class="post-metadata">

**Author:** ![sword-smith](https://talk.neptune.cash/user_avatar/talk.neptune.cash/sword-smith/32/20_2.png) [@sword-smith](https://talk.neptune.cash/u/sword-smith)\
**Post date:** [May 18, 2026, 7:53am UTC](https://talk.neptune.cash/t/mining-memory-harndess-removed/293/2 "2026-05-18T07:53:50Z")

</div>

> Post-Beta mining is a pure hash preimage search with no memory requirement.

That is correct. There are a few reasons:

- We don’t want to compete with AI hardware.
- It makes programming succintness easier. Succinctness is the feature that you only have to download _one_ block to be fully synced.
- We believe that lowering the barrier to entry to participate in mining works towards making reorganizations harder.

---

<div class="post-metadata">

**Author:** ![master](https://talk.neptune.cash/user_avatar/talk.neptune.cash/master/32/132_2.png) [@master](https://talk.neptune.cash/u/master)\
**Post date:** [May 22, 2026, 2:12am UTC](https://talk.neptune.cash/t/mining-memory-harndess-removed/293/3 "2026-05-22T02:12:42Z")

</div>

I would completely agree. In fact 40 GB is so prohibitive, that practically cut 95% of ppl who could be interested in proof mining. I recently tried to sync the thing one more time and came to the conclusion that the way it works now is completely unbearable for the average bro. I would needed to make 8 patches in the codebase to reach to top. I think part of this probelm is a weak network caused by 40GB limit.

What is you plan for recursive block validation? I think that would be kinda game changer, if combined with some really smart way to filter out outputs.
