如何制作自己的山寨币山寨币开发与制作.docx
- 文档编号:29321897
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:14
- 大小:406.44KB
如何制作自己的山寨币山寨币开发与制作.docx
《如何制作自己的山寨币山寨币开发与制作.docx》由会员分享,可在线阅读,更多相关《如何制作自己的山寨币山寨币开发与制作.docx(14页珍藏版)》请在冰豆网上搜索。
如何制作自己的山寨币山寨币开发与制作
编写改造自己的山寨币精简版
vs9841
一、前言
最近比特币、莱特币流行后,到处是各种各样的虚拟币,。
看到网上大家都在发行自己的山寨币,我也潜心研究了一段时间,终于编译出了第一款改造过的虚拟币,起名为开心币,意思是大家开开心心的玩虚拟币,制作自己的虚拟币,下面说一下我的改造心得,方便大家也能制作自己的山寨币。
首先你需要一款合适的编译环境,本文是在windows7X64位上通过,linux系统由于时间少,还没有试,但是我想大同小意。
由于我是小白般的水平,所以写不出什么复杂的东西,所以我想大家一定能看得懂,但是我水平有限,可能里面存在很多错误,高手大神不要笑话,多多指点。
我从0开始,告诉大家如何编译改造自己的一个山寨币,这里就以GoGoCoin为介绍说明,如果你也想发行自己的GoGocoin,或是开心币,看完本文后,你也能弄了。
虽然它不是很好。
为了尽可能简单,中间省去很多不必要的麻烦,这里只进行一个创世块的建立,发行总量的设置及每年收益和端口的调整,有了这些就足够成为一款山寨币了,对于算法之类,我不打算研究,那是专业人干的,我们只能做一个简单的,本文以改造一个POS类型的开心币为例进行说明,所以说如果你喜欢炒山寨币,可以制作一个好好炒,让你玩的开心,天天数开心币,还有利息,玩笑话,开始说正经的。
下面开心币的编译运行的两张截屏,如果你有好的美工,可以设计出更好的图片来。
二、基本编译环境准备
2.1准备所有需要的文件
1、首先需要一台完整干净的安装有windows7X64的电脑,当然也可以在XP系统上进行,但是我没有试过,在这里建议大家使用Vmware虚拟机或者VirtualBox虚拟机,建立一个纯净的系统,不建议在本机进行,这样可以省去许多不必要的麻烦。
更何况你制作出来山寨币,很可能要分发给大家测试,如果不小心染毒,后果会很严重。
2、下载开发环境:
可以到XX网盘下载:
下载C++编译环境绿色版目录中的所有文件,下载后的目录结构如下所示如下所示:
在这里首先安装7zip解压缩文件,如果是64位的操作系统,安装7z924-x64.zip文件,如果你是32位系统可以安装7z920_X32文件,根据自己的实际情况来决定使用哪一个。
安装7zip后,记得参照MSYS环境布置安装说明.doc文件,设置好的它的系统环境变量。
然后就是安装编译环境了,按照MSYS环境布置安装说明.doc文件,环境安装后好,就可以开始工作了。
三、开始大制作
3.1规划:
在制作之前,首先需要规划发行的货币总量,及交易利息分配,货币的名称及符号显示,数据连接的端口号规划,另外,在这里以POS类型的货币为蓝本制作,并且采用纯预挖的方案来进行,为了尽可能简单,这里使用开心币的源码,进行改造GoGocoin,下面是本例中GoGocoin的分配的一个清单:
币名称
GoGoCoin
币的符号
GBN
连接端口号
9441
RPC通讯端口号
9442
TestNet测试网络连接端口号
19441
TestNet测试网络RPC通讯端口号
19442
初始分配总量
7990万
利息分红比率第一年
10%
利息分红比率第二年
8%
利息分红比率第三年
6%
利息分红比率第四年
4%
利息分红比率第五年
2%
初始块的产生时间
2014年4月26日下午8:
28:
12
3.2准备素材
当你规划好硬币的设计,接下来是准备一些素村了,如钱包软件的图标及启动时显示的图片等一些基本素材,如果你不会设计,可以加入我们开心币群,也可以找朋友们帮忙制作。
如果你希望做自己的山寨币,就需要仔细调整自己相关图片等信息。
3.3、修改源文件
3.3.1大面积的替换修改
将SRC_kaixincoin源码文件解压到C盘根目录下,然后将这个文件夹重命名为GoGocoin,然后在使用文件工具替换查找的方法,将源代码目录中的所有源文件的内容中的“KaixinCoin”字符串替换为“GoGocoin”。
这里建议使用UltraEdit文本编辑器来替换,因为它可以一次查询替换所有源文件。
另外将kaixincoin-qt.pro文件,重命名为“GoGocoin-qt.pro”,另外还需要将src\qt\res\icons目录中的几个图标文件也重命名为对应的GoGocoin名称。
这里不在细说,但是我想你一看就明白,如果你连这里都搞不明白,你就放弃制作自己的山寨币吧。
因为后面会更复杂一些,或者让朋友来帮你完成这个工作。
完成这个工作后,就可以开始下面的过程了。
3.3.2修改货币的显示符号
打开src\qt\bitcoinunits.cpp文件,将第37、38、39等三行代码中的KXC修改为GBN,如下图所示:
3.3.3修改连接端口号
在这里我们GoGocoin使用的端口为,连接端口为9441,testnet测试网络的连接端口为19441,打开src\protocol.h,bitcoinrpc.cpp及init.cpp三个文件。
1、连接端口的修改在protocol.h文件中的第21行,修改为如下图所示,在这行代码return语句判断testnet模式是否启动,如果启动则返回19441作为端口号,否则返回9441.
2、修改命令帮助信息中说明文字中,关于连接端口提示文字,将提示的端口号修改为9441及19441,打开init.cpp文件,然后将第234行修改为如下图所示,这里即对应了上面代码中的return语句中的的两个端口号19441及9441:
3.3.4修改RPC通讯端口号
1、RPC通讯端口号的修改在bitcoinrpc.cpp文件中第46行,rpc通讯端口为9442,testnet测试网络的rpc通讯端口为19442,下面的return语句判断testnet模式是否启动,如果启动则返回19442作为端口号,否则返回9442.
2、修改命令帮助信息中说明文字中,关于RPC通讯端口提示文字,将提示的端口号修改为9442及19442,打开init.cpp文件,然后将第277行修改为如下图所示,这里即对应了上面代码中的return语句中的的两个端口号19442及9442
3.3.5修改钱包地址中首字母
关于钱包地址中首字母修改,通过base58.h中的第279行的PUBKEY_ADDRESS变量的值,如下图所示:
其中38表示钱包地址中首字母为G。
如果你希望修改为其它字母做为钱包地址的首字母可以参考下面的表格进行。
A
B
C
D
E
F
G
H
I
J
23
25
28
30
33
35
38
40
43
K
L
M
N
O
P
Q
R
S
T
45
48
51
53
55
58
60
63
66
U
V
W
X
Y
Z
68
70
73
75
78
80
3.3.6修改初始分配总量
打开main.cpp文件,切换到第951行,这里,我们设置的总量为7990万,这行代码是表示在第一块中产生多少币,由于我们里是纯预挖的POS类型币,所有的币将在第一块中产生。
也就是79900000。
如下图所示:
3.3.7修改每年的利息分红
打开main.cpp文件,来到第967行,第10表示第一年的利息为10%,其它依此类推,这里正好对应了本文前面所讲的分配表格要求。
3.3.8修改创世块的起始时间
在这里我们将要用到一个unix时间,用于设置我们我们的虚拟币第一块的起始时间,即你的山寨币发行时间,如GoGocoin的创世块的时间为2014年4月26日下午8:
28:
12,对应的Unix时间为:
1398515292。
要获得一个Uinx时间的方法有很多,你可以通过python语言的time模块下的time.time()方法来得到,也可以通过互联网获取,如下面的站长工具网上提供在线Unix时间转换。
如下图所示:
得到Unix时间后,打开main.cpp文件,在第48行中,修改nChainStartTime变量,如下面的GoGocoin创世块的起始计算时间为1398515292
3.3.9修改创世块的时间事件标记pszTimestamp
pszTimestamp变量将参与创世块的生成,它提供了一个重要事件记录,比如你是在5月1号,创建的块,你可以设置一个字符串,来描述这一天发生的一个重要事情,来帮助别人记住你发行的货币时间,实际上,你也可以设计任意的字符串,只要你原意这么做。
打开main.cpp文件在2539行,可以看到这个变量,如下面是GoGocoin使用字符串:
3.3.10修改nNonce数值
打开mian.cpp文件,在第2554行,调整nNonce变量数值虽然不是很关键,所以你可以不用理它,在这里我将nNonce数值修改为12488001。
如下图所示:
3.3.11修改pchMessageStart的ID数据
在mian.cpp文件在第2850行,这是一个消息发送的识别的一个数据,这是一个由四个十六进制数组成数据,设置这个数值使用网络通信识别ID,这里改为自己设置的数值即可,这里我设置的是0xf5,0xf4,0xf9,0x1c。
如果你不想修改这里,发行的虚拟币同样可以工作。
3.4建立创世块
3.4.1编译山寨币需要的相关组件
经过上面的一些步骤后,我们接下来就可以开始制作编译我们自己的山寨币了。
在这里将使用一套脚本来完成我们编译工作,如果你严格按照下面的过程进行,我想编译一定可以通过,编译需要进行两次,第一次编译之后,可以得到一个创世块的哈稀值及梅克儿数值。
编译方法相当简单。
打开GoGocoin\contrib\easywinbuiler目录中,你可以看到一系列的脚本文件。
其中我们主要用到下图所示这几个脚本文件:
这些脚本文件是国外网站神人们共享的脚本,它们可以方便的让编译你的山寨币。
在编译我们的山寨币之前,还需要做一件事,就是将你的下载到如下四个文件,复制到GoGocoin\libs目录中。
miniupnpc-1.9.tar.gz
db-4.8.30.NC.tar.gz
boost_1_55_0.zip
openssl-1.0.1g.tar.gz
完成后,应该如下图所示:
将你下载的build_GoGocoin.bat文件复制到windows桌面中,如下图所示:
如果你没有下载到,也可以自己做一个,这个脚本内容,其实什么也没有,就是一个切换目录的作用,给懒人用的。
内容如下所示:
cdC:
\GoGocoin\contrib\easywinbuilder
cmd
运行build_GoGocoin.bat会启动windows命令行模式,并且你会发现,它已经切换到GoGocoin\contrib\easywinbuiler目录。
1、解压缩编译山寨币所需要组件
首先运行第一个脚本批处理文件,名称为2b_run_uppack.bat,这个脚本用于解压缩miniupnpc-1.9.tar.gz,db-4.8.30.NC.tar.gz,openssl-1.0.1g.tar.gz等三个文件。
如下图所示:
其次运行第一个脚本2c_unpack_boost.bat,这人脚本用于解压缩boost_1_55_0.zip文件。
2、编译山寨币所必须的四个组件
这是一个十分费时间工作,但是编译之后,今天就不用在编译,大概需要一两个小时。
当所有组件都解缩后依次执行下在面的几个批处理文件。
A:
3a_build_boost.bat编译boost组件
B:
3b_run_build_dep.bat编译db内存数据库
C:
3c_buildminiupnpc.bat编译miniupnpc组件
D:
4a_build_daemon.bat编译命令行模式下的钱包客户端
E:
4b_build_qt.bat编译QT图形界面的钱包客户端
F:
6_gather_dll.bat复制所需要的dll文件中到发行版release目录中。
3.4.2将创世块信息输入到源代码中
当编译完成软件后,当你第一次运行编译好的软件时,会发现提示错误信息,并且退出软件,此时不要当心,在运行上中输入%appdata%/GoGocoin,然后回车可以,可以看到钱包的初次运行产生的调试记录中文件debug.log文件,打开这个文件,找到block.GetHash()==,并记录下双等号后面的值,这个值类似下面所示,它会因为你设置的不同,产生不同的结果:
block.GetHash()==ee645ff0cf4c42078853cbac627c753897948b3f85b32ecd1fbd4fd23e229f0f
然后将双等号后面的值,替换到main.h文件中第50行,替换时,注意前面的0x,这表示这是一个16进制数,如下图所示,其中第51行是testnet测试网络中创世块设置,这里我们暂时不用理它,因为它设置的方法也是一样的。
接着在debug.log文件中找到block.hashMerkleRoot==,并计记录下他的值,这个值类似于下面的这样:
block.hashMerkleRoot==4bb223f494321c222c66355c3c24f83b85976947d66c6fbdfc7db071ab4fa7c6
将这个值替换到main.cpp文件中的第2562行,如图所示:
替换完成后,现在让我们进行第二次的钱包客户端编译,这一次编译比较简单只需要运行下面的两脚本文件,即可。
D:
4a_build_daemon.bat编译命令行模式下的钱包客户端
E:
4b_build_qt.bat编译QT图形界面的钱包客户端
编译完成后,来到GoGocoin\release目录中,运行GoGocoin-qt.exe程序,当运行后,如果你足够顺利,钱包就可以工作了,这里将编译这这台电脑称为A电脑,然后你要做的就是从A电脑复制一份钱包软件另一台电脑(B电脑)上,并且确保两台电脑可以互相联通,并且你要记下这两台电脑IP地址,如下面:
A电脑IP:
192.168.255.2
B电脑IP:
192.168.255.100
然后在每台电脑钱包客户端目录中新建一个conf配置文件,这里我们GoGocoin的配置文件名称为GoGocoin.conf,然后在GoGocoin.conf中设置数据连接节点为另一台电脑,如下面是A电脑的GoGocoin.conf的设置如下:
addnode=192.168.255.100
而B电脑的GoGocoin.conf文件指定的节点IP为A电脑的IP,如下面所示:
addnode=192.168.255.2
设置完成后,然后重新启动两台电脑软件,你会发现他们已经可以互相握手沟通,并建连接。
在软件的右下角显示了已经建立连接信号指示,并且至少有一格信息:
当建立连接后,我们要做的一件事,就是生产我们的第二个块,在这两台电脑其中一台电脑的钱包客户端上执行挖矿命令:
setgeneratetrue,然后稍等一会攻夫,你会发现钱包中就会出现一个数值7990万,未成熟的块,当你等到50个确认后,这个你的钱币就算生产完成了。
此时,你可以试着向另一个钱包中,发送GoGocoin。
恭喜你,你已经成功的建立了一个款山寨币了,现在你要做的就是向别人分发你的钱包客户端,为了让钱包可以在互联网上运行,并且确保大家可以更新钱包数据,在开始阶段,你需要有一台联入公网,并拥有固定IP地址或是域名的服务器主机,方便大家与你的钱包客户端进行数据同步,这个其实也很简单,只要在服务器上运行钱包客户端即可。
然后在分发给用户使用钱包中,通知用户在自己的配置文件中添加入这台服务器的IP,做为数据同步节点。
到此,山寨币的制作就算完成了。
钱包编译后,运行后,产生错误,提示初始块创建失败,怎么办:
这里要注意另外一件事,就是有时候,当你按照上面的方法,生成一个钱包客户端后,运行后,会提示一个严重错误,LoadBlockIndex载入错误,在debug.log中显示如下错误提示:
ERROR:
AddToBlockIndex():
Rejectedbystakemodifiercheckpointheight=0,
modifier=0x0000000000000000
ERROR:
LoadBlockIndex():
genesisblocknotaccepted
不要害怕,你需要重新制作创世块,这里只要在重新修改main.cpp文件中的创世块的时间事件标记pszTimestamp变量后面字符串(第2539行)和nNonce值(第2554行),然后在次编译钱包,编译时只要执行下面的两个编译脚本即可:
D:
4a_build_daemon.bat编译命令行模式下的钱包客户端
E:
4b_build_qt.bat编译QT图形界面的钱包客户端
然后再次运行编译钱包,这样又会产生一个新的创世块信息,在次将这些创世块信息重新替换到源文件中即可,在试试。
如果你在制作中有什么问题,欢迎加入我们的开心群大家一起交流学习。
鸣叫:
当你看完本文后,你现在也可以生产自己的山寨币。
要感谢网上那些乐意分享的技术达人们。
如果你喜欢支持GoGocoin,可以到下面的网站中下载GoGocoin客户端安装。
捐助地址:
BTC:
184BLymLn7VkkSvLHvwFBNVJoyYMfczc3t
LTC:
LWE5mErueABw7AvhCF9mZFwfstDF6hKurq
NXT:
6601142096750516042
DOGE:
DMGhz37BMHiKPZ4zLaS9pNimdLWmYrauvW
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 如何 制作 自己 山寨 开发
![提示](https://static.bdocx.com/images/bang_tan.gif)