In this chapter, we will be forking Litecoin source code and working on top of that. Here is a brief overview of the steps involved:
- Making the layout and the requirements of the project.
- Opting of the algorithm, various algorithms can be opted for this process. In this chapter, we are going forward with the script algorithm, which is used in Litecoin itself.
- Consensus type: PoW, PoS, or any other consensus type can be used based on community support. In this chapter, we will be using the PoW consensus type, which will require miners to mine for the coin and also confirm transactions.
- Coin name: The name of the coin has to be decided.
- Coin abbreviation: Such as for Bitcoin, BTC is used, and for Litecoin, LTC is used; similarly, an abbreviation is required, so better to have the abbreviation be similar to the coin name.
- Port for connection: It is important to select the port for connection with the network; this port will be used by every node connected to the blockchain network.
- Block reward: It is important to set the block reward, that is, the amount of coins that will be rewarded when a block is mined by the miners.
- Block halving time: This is the time when the block reward will be halved, for example, in Bitcoin the block reward is halved every 210,000 blocks, which controls the production of the coins.
- Coin supply limit: This is the limit of coins that will be produced by all the miners in total; this is generally controlled by the block halving time, since after a certain amount of blocks, it will not be feasible to mine any more blocks.
- Coinbase maturity: It is important to set the number of blocks that are to be mined before the mined coins can be spent which were received in a block mining reward.
- Confirmations: This is the number of blocks that are to be mined before a transaction is confirmed.
- Difficulty re-adjustment time: For example, Bitcoin has a difficulty re-adjustment time of two weeks; similarly, it is required to set this time during the development process.
- Block mining time: Total time which should be spent in the mining of a block.
- Seed node: This is the node that is the starting node of the coin; it is important to have a node that is always online till enough nodes are synced and connected to the network. It is acceptable to have multiple seed node addresses available. We can also opt for DNS seeds, which are nothing but DNS servers which contains addresses for the seed nodes on the blockchain network.
- Wallet UI: The core wallet is built on a QT framework, and its GUI can be changed as per requirements.
- Graphic assets: Icons for the coin and other graphic assets can be chosen and replaced in the Litecoin source; it is also suggested to maintain the sizing properties of the icons.