主页 > 怎么注册imtoken钱包 > 听说虚拟货币很火,我也想做一个(初级版)
听说虚拟货币很火,我也想做一个(初级版)
附图:创建自己的货币来玩,可能是了解虚拟货币结构的最佳方式
最近,关于ICO(Initial Coin Offering)的事情可谓火爆。什么是ICO,什么是区块链(Blockchain),想必很多人都已经知道了。
当然,在虚拟货币火爆的同时,也有不少人浑水摸鱼,滥用“区块链”概念。比如市场上有很多基金既没有真正应用区块链的想法,也没有任何真实的项目作为支持。仅仅一张白皮书,他们就吸引了数千万甚至数亿的资金。
ICO确实存在泡沫。它不仅存在,而且泡沫巨大。但我们也可以换个角度思考一下,ICO为什么大肆炒作?因为去中心化货币的内在价值是有目共睹的,我们不能否认。所以,浑水摸鱼的人,终究会变成鸡毛,真正有价值的虚拟货币会因为稀缺而变得越来越强大。
那么,如何在虚拟货币的混乱中找到真正有价值的产品呢?只看两个帖子不是一个好主意,甚至可能会误导您的选择。只有真正理解了思想和结构,从根本上理解了区块链的意义和作用,才能在这个领域做好。
配图:关于虚拟货币的含义,个人看法,用一对米开朗基罗的《创世纪》来总结
这篇文章不敢称它为教程,但经过一段时间的研究,有了一些切身的体会,逐渐写了几篇,在此分享给大家。
这个是关于:
如何构建自己的虚拟货币?(初级版本)
我们将创建的虚拟货币是基于以太坊生态系统的可交易等价物。由于每种虚拟货币的基本特征和原理都相似,所以我们创建的币与以太坊钱包和其他相同标准下的合约兼容。
本文工具:以太坊钱包
1. 基础设施
一个虚拟货币合约可能非常复杂,但创建最简单的货币并不难。
合约 MyToken{
映射(地址 => uint256) public balanceOf;
函数 MyToken(uint256 initialSupply){
balanceOf[msg.sender] = 初始供应;
}
函数传输(地址_to,uint256_value){
需要(balanceOf[msg.sender] >= _value);
要求(平衡[_to] + _value >= balanceOf[_to]);
balanceOf[msg.sender] -= _value;
balanceOf[_to] += _value;
}
}
这里的映射本质上是一个包含您的地址和属性的关联数组。表格是{汤姆的地址:100 个硬币,鲍勃的地址:50 个硬币}。
MyToken(uint256 initialSupply) 是一个构造函数。创建硬币时,您需要输入初始供应值。
transfer(address _to, uint256 _value) 该函数用于转账。输入对方地址和转账金额。系统会先用require来确认发送方是否有足够的币,发送的金额是否为正数。然后从发送者的账户中扣除相应数量的硬币并添加到接收者的账户中。
二、添加更多内容
接下来,我们可以尝试给这个币添加更多的内容,先把最基础的一段放在这里。
合约 MyToken{
映射(地址 => uint256) public balanceOf;
}
如果只是使用上面的代码,编译器会通过,但不会产生任何实际效果。目前这个硬币只允许你转移任何地址的财产。由于您实际上并未创建硬币,因此调用任何地址都将返回 0。
因此,我们将首先创建一个构造函数来生成一些硬币。
函数我的令牌(){
balanceOf[msg.sender] = 100,000,000;
}
构造函数只运行一次来初始化一个类。因此,合约 MyToken 和函数 MyToken 的名称必须一致。运行此功能后,部署此合约的用户将获得自己的 1 亿个币。当然,为了方便后期调整,构造函数也可以这样写:
函数 MyToken(uint256 initialSupply){
balanceOf[msg.sender] = 初始供应;
}
我们将在它运行时传递该值。接下来,添加传递函数。具体内容刚才已经讲过了。
函数传输(地址_to,uint256_value){
需要(balanceOf[msg.sender] >= _value);
要求(平衡[_to] + _value >=平衡[_to]);
balanceOf[msg.sender] -= _value;
balanceOf[_to] += _value;
}
接下来,我们必须开始完善这个硬币。
合约就像java、python等语言中的一个类,有自己的一些属性值。比如名称、符号等。我们也可以根据自己的喜好添加币种。
字符串公共名称;
字符串公共符号;
uint8 公共小数;
每次合约初始化时虚拟币钱包地址怎么获取,都需要给这些属性赋值。
函数 MyToken(uint256 initialSupply,字符串 tokenName,字符串 tokenSymbol,uint8 decimalUnits){
balanceOf[msg.sender] = 初始供应;
名称 = 令牌名称;
符号 = 令牌符号;
小数 = 小数单位;
}
最后,我们将向我们的 Coin 添加一些事件。事件是一个非常有趣的设置,它本身不会对运行结果产生任何影响,只是帮助用户跟踪自己的交易行为。
事件传输(地址索引来自虚拟币钱包地址怎么获取,地址索引到,uint256 值);
当相应的函数运行时,同时调用一个事件,客户会得到相应的反馈。
函数传输(地址_to,uint256_value){
需要(balanceOf[msg.sender] >= _value);
要求(平衡[_to] + _value >= balanceOf[_to]);
balanceOf[msg.sender] -= _value;
balanceOf[_to] += _value;
转移(msg.sender,_to,_value);
}
现在,一个工作的硬币完成了,点击部署,你将拥有自己的电子货币,它将像比特币和莱特币一样公平交易,永远不会发行。
1. 下载以太坊钱包并登录
2. 点击右上角的合同
3.复制粘贴我们写的代码
4.在右边给硬币起个名字并设置发送多少
5.点击部署
6. 耐心等待一会,你的币就完成了
在创建时,您拥有 100% 的硬币。