在前面的章节中,我们主要进行了两个步骤:搭建了truffle和testrpc环境;学习了sodility的语法和以太坊的基本概念。
有了这两部分知识,我们很容易开发一款基于testrpc的测试加密数字货币:

一 首先新建一个dapp2文件夹

mkdir dapp2

二 truffle初始化

truffle init

三 创建合约myToken

truffle create contract myToken

四 编写业务代码
cd contract;
vim myToken.sol;

pragma solidity ^0.4.4;
contract EncryptedToken {//storage变量永久存储在区块链上uint256 INITIAL_SUPPLY = 10000;//地址到账户余额的映射mapping(address => uint256) balances;//构造函数,合约部署的时候只执行一次,将function EncryptedToken() {balances[msg.sender] = INITIAL_SUPPLY;}// 转账到⼀个指定的地址function transfer(address _to, uint256 _amount) {assert(balances[msg.sender] > _amount);balances[msg.sender] -= _amount;balances[_to] += _amount;}// 查看指定地址的余额function balanceOf(address _owner) constant returns (uint256) {return balances[_owner];}
}

五 配置部署文件
编辑migrations/1_initial_migration.js部署脚本,将我们刚才创建的Hello_mshk_top.sol文件设置到发布配置文件中,内容如下:

var myToken= artifacts.require('./myToken.sol');
module.exports = function(deployer) {deployer.deploy(myToken);
}

六 到truffle.js配置网络相关

module.exports = {networks: {development: {host: "localhost",port: 8545,network_id: "*"}}
};

七 编译部署

退到dapp2目录下

truffle compile
truffle deply

八 测试合约

truffle console;//开启控制台
web3.eth.coinbase;//查看合约拥有者帐号token数量
web3.eth.accounts[0];
web3.eth.accounts[1];

accounts[0]和coinbase是一个账户

然后调用合约contract的查询余额方法balancesOf:

然后调用合约contract的转账方法transfer向accounts[1]转账8888个token:

然后查询accounts[1]的余额,发现从0变成8888个token了:

九 总结

在这篇文章中,只是简单介绍了代币系统的逻辑,并没有对安全进行相关操作,比如:余额不够
的处理、地址合不合法的处理等等。我想有了前面学习的基础应该很容易看懂这里面的操作逻辑。

学习区块链(十)--基于truffle和testrpc创建加密数字货币相关推荐

  1. 区块链开发: 2019年及以后数字货币的前景如何?

    区块链开发: 2019年及以后数字货币的前景如何 区块链是 2017年最热门的技术之一.来自世界各地的数千人试图利用比特币和其他数字货币不断上涨的价格进行投资和套现.似乎世界将在短短几年内依靠这些货币 ...

  2. CECBC区块链专委会副主任吴桐主讲光大证券法定数字货币讲座

    9月26日,光大证券邀请CECBC区块链专委会副主任.数字资产研究院学术技术委员会委员.伏羲智库研究员.区块链及数字经济领域知名学者吴桐主讲法定数字货币线上专题讲座.讲座时间为1.5个小时. 我国法定 ...

  3. 学习区块链的十大理由 1

    2019独角兽企业重金招聘Python工程师标准>>> 技术发展迅速!如果你仍然在你的多维数据集中编辑Java代码或只是搞PowerBuilder,那么你可能只生活在过去.少数雇主的 ...

  4. 学习区块链的十大理由

    学习区块链的十大理由 技术发展迅速!如果你仍然在你的多维数据集中编辑Java代码或只是搞PowerBuilder,那么你可能只生活在过去.少数雇主的地方.现在的情况发生了很大变化.你需要领先一步,采用 ...

  5. 区块链十年一梦:有人辞官归故里,有人星夜来赶考

    比特币就像是一个残酷的螺旋,不断往上攀升,只是过一个周期,盘子还在,人却换了一批.因此,与其说是入场的人群靠比特币致富,不如说比特币靠这一拨又一拨的人获得了永生. 作者:江小渔 编辑/策划:秦晋.郑迪 ...

  6. 区块链是什么,如何学习区块链技术?快速上手

    一.区块链是什么? 二.从技术角度学习区块链技术? 一.区块链是什么?区块链有很多的定义,大家的说法都不一样,业界都还没有统一.每个人心中都有自己的哈姆雷特.所以此处就不做定义了.也可以参考其他回答. ...

  7. 学习区块链?github上的那些区块链项目

    一番码客 : 挖掘你关心的亮点. http://efonfighting.imwork.net 文章目录 前言 编程语言分布 star前十 中文资源 总结 今日一番 前言 当世界大部分人都还在问&qu ...

  8. YEX黄建:脱离比特币谈区块链,要么真傻,要么装疯卖傻丨区块链十人谈

    如果说2017年是属于虚拟货币的一年,那么2018年的区块链将是生态和应用的一年,随之而来的也将是新的玩法.新的赚钱姿势.为此,雷锋网推出"区块链十人谈"(十人者,取是知众人博所长 ...

  9. 如何学习区块链技术?

    2018年春节最火热的概念应该就是区块链了,从百度的莱茨狗和网易星球刷屏朋友圈,到3点钟区块链无眠群的大火,大佬们纷纷进军区块链,不了解区块链好像错过一个时代. 这里把学习区块链过程中的一些资料进行索 ...

最新文章

  1. cisco中的igrp笔记
  2. [转]使用 C 编写 Lua 模块
  3. maven环境快速搭建
  4. SQL语言基础:SQL中的数据完整性约束用法
  5. matla工具箱 SerialLink 的一些最近发现的功能
  6. latex中文模板_都8012年了还不用LaTex编辑论文就out了!!
  7. python免费课程400节-北京市python儿童学编程
  8. html flash mp3播放器,网页实用最简单的flash mp3播放器代码-多样式
  9. 云队友丨带不好人,就只能自己干到死
  10. sql server在指定模式下创建表
  11. html手动加css,添加自动到手动滑盖HTML5 - CSS
  12. Java写的一个简易木马(仅供自娱自乐)(基于UDP实现版)
  13. bootstrap collapse切换改变图标
  14. 输入一个角度的弧度值x,计算该角的余弦值
  15. 通过Node.js解析stl文件
  16. 74HC595控制8位数码管 计时程序
  17. win7的虚拟机版优化
  18. springMVC实现图片上传
  19. 制作持久化的 Kali U盘
  20. Linksys EA6500 V1 刷梅林固件过程记录

热门文章

  1. springMVC数据校验
  2. NOJ-1143-字母转换
  3. 【全记录】2017杭州·云栖大会阿里云服务专场
  4. linux pclint配置_代码静态分析工具PC-LINT安装配置
  5. 区块链应用(七):版权
  6. 调用 车联网API 一些收获
  7. 组合数计算的几种方法
  8. Qt QPushButton 添加图片
  9. Laya 3D开发经验和问题总结
  10. Spark - AUC、Accuracy、Precision、Recall、F1-Score 理论与实战