Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Completely remove Zerocoin parameters #2902

Open
cillian-osullivan opened this issue Feb 15, 2024 · 5 comments
Open

Completely remove Zerocoin parameters #2902

cillian-osullivan opened this issue Feb 15, 2024 · 5 comments

Comments

@cillian-osullivan
Copy link

I think that the zero coin parameters should be removed to clean up the code, the developers have been doing an absolutely incredible job so far working around it but I believe it would be of benefit to all to remove these unused features entirely, short of this, a rebase to the latest 0.24 of Bitcoin core may be in order, this of course would be a more challenging task, however it’d be much cleaner and more streamlined going forward. Any thoughts?

I’d be happy to assist in whichever direction the team decides to take.

@cillian-osullivan
Copy link
Author

Another thought: Rebasing to latest version of Bitcoin Core would implement Taproot to PIVX.

@cillian-osullivan
Copy link
Author

Furthermore, we’re still using the old version of BerkeleyDB making running a node painful to do on most modern Linux distributions.

@Fuzzbawls
Copy link
Collaborator

Neither of these option are realistically viable. The zerocoin params are needed in order to validate existing transactions that took place during it's time.

Rebasing on the latest Bitcoin codebase is also not practical. PIVX is it's own entity, and features implemented upstream don't always align with what we want or even need. We pull from upstream what is needed/desired already, but in a methodical way so to retain understanding of such changes rather than blindly following.

BDB 4.8 is a non-issue; release binaries are statically linked to it and require no further input from users in order to run the PIVX wallet. Developers/tinkeres have the option to install this dependency either from the well maintained Ubuntu PPA, or compile it from source via the included script file (https://github.com/PIVX-Project/PIVX/blob/master/contrib/install_db4.sh).

@Liquid369
Copy link
Member

Indeed as @Fuzzbawls says there are reasons behind the way things are done.

For our chain zerocoin is necessary because it was active on this chain. For other chains that is true it’s not necessary for them. Portions have been removed and cleaned up, but in order to sync the chain and validate properly we need these things to remain in this slimmed down form.

For Bitcoin, we do selectively bring in changes that make sense for us and in the direction we are going. Mainly this is why we forked off, is because we have a different vision. Granted Bitcoin makes many good things, not all of those are relevant to us.

Dependency wise for libdb, if it’s compiled with them statically linked the users will not need these files installed on their host system to run the daemon/qt. To which our releases are, and has not reached a compatibility issue.

@skironDotNet
Copy link

@cillian-osullivan removing zerocoin params could mean that someone would not be able to download the blockchain from 0 this is what @Fuzzbawls refering to as "zerocoin params are needed in order to validate existing transactions that took place during it's time"
The way BC download works, it uses or the logic from block 1, and validate each next tx using such logic, every hardfork, softfork, going to zksnarks is coded in the source code that at block X activate Y, and all this is necessary to do re-validation.

The only way to potentially overcome this is to hardcode, last valid block hash past all of those event's and, and let pivx to not validate any blocks, before block number X with hash Y. I think for now it has no value to do that. Keeping all the source code gives context to the time line, and testnet could be affected when run from 0 on local machine. There is a lot to it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants