Is there any step-by-step tutorial about how to build own cryptocurrency based on Bitcoin code?
4 Answers
To start a new chain, use a genesis generator, apply the new genesis to the source, and remove the checkpoints.
If you want to apply new/different rules, be prepared for a difficult task. Changing even the slightest protocol rule will most likely affect all other rules because of the complexity of PoW.
If the only thing you want to alter is the maximum coins, this should be relatively easy to alter in the source.
-
what are the checkpoints? why should you remove them? Commented May 6, 2017 at 18:30
-
Checkpoints are old blocks hardcoded into the source. As you want to start a new chain, using a checkpoint from Bitcoin, would prevent to start from scratch. See: bitcoin.stackexchange.com/questions/1797/what-are-checkpoints– FedFranzCommented Dec 4, 2017 at 12:18
-
You can find a guide to create your own Genesis block here. medium.com/@dophuoc/…– Phuoc DoCommented Feb 23, 2019 at 2:15
-
Not found 404, github.com/bitcoin/bitcoin/blob/master/src/checkpoints.cpp– Max BaseCommented Jan 22, 2022 at 4:47
There is a Complete Guide on How to Create a New Alt Coin on Bitcoin Talk.
-
-
This one is Bitcoin Core: bitcointalk.org/index.php?topic=3345808.msg35016844#msg35016844– Kai WangCommented Nov 7, 2019 at 22:13
-
Just found a later post: bitcointalk.org/index.php?topic=5134256.0– Kai WangCommented Nov 7, 2019 at 22:36
Here is a guide: How to Fork Bitcoin (create your own chain).
I really think Bitcoin as a concept is unique and powerful, and the project is well maintained by very talented developers, so I wanted to write this not just to help make it easy to clone, but to help increase understanding of the concepts and how to fully utilize them in other projects. I would love comments if you think I can improve it in any way. It covers the following:
- Forking
- Building from source
- Customizations:
- Change default ports for all nets (mainnet, testnet, regtest)
- Change the “magic message” or the message prefix for all nets (mainnet, testnet, regtest)
- Change the address prefixes (optional) for all nets (mainnet, testnet, regtest) and for all address types (P2PKH, P2SH, and secret keys).
- Change the block reward (optional)
- Change the coinbase maturity (optional)
- Change the halving interval (optional)
- Update max money check value (required if this should be different)
- Reset minimum chain work
- Remove DNS seeds
- Remove checkpoints
- Update DEFAULT_MAX_TIP_AGE
- Change block time (optional) for all nets (mainnet, testnet, regtest)
- Change the difficulty adjustment interval (optional) for all nets (mainnet, testnet, regtest)
- Managing Updates
There are some tutorials out there, check out:
https://bitcointalk.org/index.php?topic=225690.0
If that one is not sufficient let me know, and maybe I'll write one up.
There are also a lot of coins on github that you could just fork, create your own genesis block, modify parameters (coins per block, max coins, etc) and start mining.
One example is:
https://github.com/0xfff/VanCoin
-
1imho it's insufficient- if you want to write one I'd be the first to read it Commented May 6, 2017 at 18:30
-
Please make one tutorial. Most out there are old and does not work at all, and all occurs error or even does not desctibe what they uses. I am using Windows 10 laptop.– creatorCommented Jan 25, 2018 at 9:11