Forking Qwertycoin
This is a guide on how to make your own Qwertycoin fork.
Creator's License
Before we begin, you will see a license at the beginning of every file. It is important not to remove or alter that license statement other than how we have it detailed here.
Steps
Change the Binary Names
src/CMakeLists.txt
src/CMakeLists.txt
Change ASCII Art
lib/Global/Constants.h
lib/Global/Constants.h
This ASCII art will display on the binary programs. You can use this generator to create your ASCII art. Depending on the ASCII art you choose to use, you may need to provide a different version for Windows.
Change Block Time
lib/global/CryptoNoteConfig.h
lib/global/CryptoNoteConfig.h
Block time is measured in seconds. Qwertycoin has 2 minute blocks.
Change Wallet Address Prefix
lib/global/CryptoNoteConfig.h
lib/global/CryptoNoteConfig.h
Qwertycoin has an address prefix of QWC. Every wallet that is generated will begin with the same prefix. You can use the generator on this page to generate your prefix in hexadecimal.
Change Mined Coins Unlocked Timeframe
lib/global/CryptoNoteConfig.h
lib/global/CryptoNoteConfig.h
Mined coins should wait about 20 minutes before being awarded to the miners. You can adjust this to suit your coin's parameters.
Change Money Supply
lib/global/CryptoNoteConfig.h
lib/global/CryptoNoteConfig.h
The coin supply is measured in Atomic Units. The amount of decimal places that you have determines how many coins this number truly represents.
(uint64_t)(-1)
= 18446744073709551616 coinsYou can define number explicitly like so:
UINT64_C(18446744073709551616)
Change Emission Speed
lib/global/CryptoNoteConfig.h
lib/global/CryptoNoteConfig.h
The emission speed governs how much of the coin's total available supply is awarded to miners with each block. You can play around with the emission speed using this tool.
Change Decimal Points
lib/global/CryptoNoteConfig.h
lib/global/CryptoNoteConfig.h
Change this number to suit your needs.
Change Minimum and Maximum Transaction Fees
lib/global/CryptoNoteConfig.h
lib/global/CryptoNoteConfig.h
Set the fees in Atomic Units for each transaction. Make sure this number isn't too low or you might run into spam transaction attacks.
Change Remote Node Fee
lib/global/CryptoNoteConfig.h
lib/global/CryptoNoteConfig.h
This section defines the fees that the remote node will receive from the sender.
Set Dust Limit
lib/global/CryptoNoteConfig.h
lib/global/CryptoNoteConfig.h
Dust is the word for the smallest pieces of a coin that are too small to be included with in a block. Any amount lower than this will not be spendable. This number is measured in Atomic Units.
Set mixin Level
lib/global/CryptoNoteConfig.h
lib/global/CryptoNoteConfig.h
Mixin determines how private transactions are. A high mixin on a new network can cause transactions to fail so it is suggested to allow zero mixin and to start off with reasonable limits and increase later.
Change Hashing Algorithm
lib/global/CryptoNoteConfig.h
lib/global/CryptoNoteConfig.h
If you want to be an ASIC mined coin, make this number very high (~300000-350000). If you don't want to be ASIC mined, set this number to 3. You can also change V5 and V6 for your coin.
Change Coin Name
lib/global/CryptoNoteConfig.h
lib/global/CryptoNoteConfig.h
Change P2P and RPC Ports
lib/global/CryptoNoteConfig.h
lib/global/CryptoNoteConfig.h
Set these to personal preference.
Software Update URL
lib/global/CryptoNoteConfig.h
lib/global/CryptoNoteConfig.h
Set this according to your preferences.
Change Seed Nodes
lib/global/CryptoNoteConfig.h
lib/global/CryptoNoteConfig.h
Seed nodes are full daemons that serve up a copy of the blockchain data for peers just joining the network. Minimum amount is one but several are recommended.
Remove Checkpoints
lib/global/Checkpoints.h
lib/global/Checkpoints.h
Remove checkpoints.
Change CLI Wallet Config
lib/Global/Constants.h
lib/Global/Constants.h
Change to your personal preference.
Set Address Length
lib/Global/Constants.h
lib/Global/Constants.h
Your address length should be 95 + the number of letters in your address prefix.
How to Compile and Deploy Your Coin on Linux
Prerequisites
CMake 3.10 or higher, build-essential, git
Example for Ubuntu
Building
After installing dependencies run simple script:
If all went well, it will complete successfully, and you will find all your binaries in the
./build/src
directory.
Deploy
On the seed nodes that you listed in src/config/CryptoNoteConfig.h
, launch your newly compiled daemons. It is suggested that you run the daemons inside of tmux to keep them running. Here's how to start the daemons inside a basic loop to relaunch the daemon if it fails.
Type
control b + d
to exit tmux
Advanced Parameters
Coming soon....
Last updated