You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In trying to use GenesisZ to re-generate the settings for the testnet for Zero Currency, I've discovered that currently the Zcash 200,9 Equihash parameters and 1364 byte solution size are hard coded.
For example, zcash/core/init.py line 20
More importantly, solvers.py lines 109 and 120.
Zero uses 192,7 and provides a higher level of ASIC resistance, with an order of magnitude larger memory requirements, while the solution size is 420 bytes.
Tromp support is in place, via the eq1927 make target.
Also, you may have heard that in response to the Bitmain ASIC miner introduction, several Equihash based coins are changing their settings, so there will be a bit of interest in a broader range of Equihash parameters. Say BTCG is moving to 144,5, and Tromp already has a version for that.
Do you see a way to relax those solution size checks or to make them configurable, please? I can hack at it and comment them out, but wanted to ask about a more proper approach.
Attached is the Zero chainparams.cpp, if you wanted to review specifically how the genesis block is configured.
Do not hesitate to give suggestions or to ask any questions. [email protected]
I think the cleanest way to implement this is to add the functionality to set custom N and K parameters in the zcash module (currently, only Zcash mainnet, testnet, regtest can be selected) so that the solution checking and array (un)packing functions work for arbitrary altcoins. Then GenesisZ can just select those parameters and everything else should work, given that altcoins like Zero don't change the structure of the header struct. I'll have a look into that soon.
Per request, Tromp added a way to pass the blake2b 'personal' string via a -p argument tromp/equihash#19
For Zero coin we need the following values:
class ZCoreMainParams(CoreMainParams):
N, K = 192, 7
SOL_SIZE = 420
PROOF_OF_WORK_LIMIT = 0x0AB1Efffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
In trying to use GenesisZ to re-generate the settings for the testnet for Zero Currency, I've discovered that currently the Zcash 200,9 Equihash parameters and 1364 byte solution size are hard coded.
For example, zcash/core/init.py line 20
More importantly, solvers.py lines 109 and 120.
Zero uses 192,7 and provides a higher level of ASIC resistance, with an order of magnitude larger memory requirements, while the solution size is 420 bytes.
Tromp support is in place, via the eq1927 make target.
Also, you may have heard that in response to the Bitmain ASIC miner introduction, several Equihash based coins are changing their settings, so there will be a bit of interest in a broader range of Equihash parameters. Say BTCG is moving to 144,5, and Tromp already has a version for that.
Do you see a way to relax those solution size checks or to make them configurable, please? I can hack at it and comment them out, but wanted to ask about a more proper approach.
Attached is the Zero chainparams.cpp, if you wanted to review specifically how the genesis block is configured.
Do not hesitate to give suggestions or to ask any questions.
[email protected]
chainparams.cpp.gz
The text was updated successfully, but these errors were encountered: