2、如何发行自己的数字代币(truffle智能合约项目实战)

2、如何发行自己的数字代币(truffle智能合约项目实战)

1-Atom IDE插件安装

正式介绍基于web的智能合约开发

推荐一个新的开发工具

Remix在线工具,无需安装,有缺点,不适合项目的开发

下面的ico代币都要借助官方的模板。保存到本地,在本地进行修改

一行有可能团队开发

https://learnblockchain.cn/docs/solidity/resources.html#solidity-ide

这里使用ATOM,本身绿色版

支持高亮和语法检查

打开一个项目

无智能合约的高亮状态

可能进行了屏蔽,无法下载,需要科学上网安装

若install未安装成功,可以将已经下载好的包(离线安装-此操作看视频)

本人直接在线安装好了

language-ethereum(是高亮的插件)

再安装自动补全的插件

autocomplete-solidity

都是通过官网下载的

此处也在线安装成功了

有高亮状态了

有了此工具开发dapp会更加方便

2-truffle tutorialtoken

进行web

使用相关的web框架参考

学习新技术的时候也使用模板

后期根据需求进行修改,开发效率无疑最快

有各种基于去中心化的解决方案

每个项目设计的技术也不太同

可以根据自己掌握的技术栈选择

通过tutorialtoken完成代币的发送及转账

https://www.trufflesuite.com/boxes

项目的下载和部署页面

创建项目需要的步骤,也在其中

Truffle框架已安装完成

此项目模板下载



进行模板下载失败,网络问题

故直接在码云或者github寻找

很快就下载下来了

直接运行失败了truffle develop

官方的bug

注意将truffle.js改为truffle-config.js

必须修改

此时就打开了

Migrate部署报错,版本太低,使用ATOM打开项目更改版本

通过npm run dev(是js的命令必须在开发者模式外执行)

执行npm run dev报错

安装

npm install -g live-server

问题已找到直接找到下方的解决方法

再次向github下载

按照上方的步骤一步步来

一直到migrate

还是出现了此错误

https://blog.csdn.net/qin_zhimou/article/details/98966993

以下解决方法完全可行


再次运行成功后出现界面如下

进行ico合约发布转账

Node moudles

Src下是前端内容

Src下的js下的app.js就最核心的内容

下节课会分析


自动运行项目并分配3000端口


上方更改dev的启动端口

退出服务再启动npm run dev

启动的服务可以在局域网其他设备查看

3-tutorialtoken源码框架分析

模板编译部署运行

Json的注释在

{
  "//":"json格式,定义项目所需的各种配置,和当前项目依赖的资源",
  "#name": "定义项目的名称, version: 版本",
  "name": "tutorialtoken",
  "version": "1.0.0",
  "description": "",
  "main": "truffle-config.js",
  "directories": {
    "test": "test"
  },
  "#script":"定义可以执行的脚本  npm run dev中的dev为定义的脚本名词",
  "scripts": {
    "dev": "lite-server",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "#lite-server": "lite-server,可以用来搭建本地server服务,默认会读取当前bs-config.json文件",
    "lite-server": "^2.3.0"
  }
}

可以在bs-config该端口等

官方的demo着重将src下的文件

Css和font是用来美化界面的

从index分析,唯一该用户展示的界面

此处jQuery依赖的是google的在线版,下方最好下载下来为离线版

https://www.jq22.com/jquery-info122


右键另存为

保存到对应的js文件下

jQuery最好直接下载下来

Bootstrap框架

 <!-- web3.js 提供了智能合约实例化,和合约调用的功能(RPC 远程过程调动) -->

其他项目要想要调用公有链的智能合约,就需要RPC

App.js是核心的编写的js文件,最重要的

接下来详细分析App.js

本节课主要分析结构,下节课分析细节

App={}本身是一个对象

项目开始需要链接到私有链,使用web3Provider

在最下方的函数,只要页面加载完成就执行App对象中的init函数,而init函数有调用下方的initweb3(用来实例化web3对象)

Web3内置在truffle,,私有链执行就可以调用,若后期无私有链可以使用

http://cw.hubwiz.com/card/c/web3.js-1.0/

初始化web3实例后才能调用合约

接下来要进行智能合约的初始化

Node.js写作风格

所有的js都被引入到了html

App.js是后台可以调用js文件下所有的js执行

自己写个智能合约,编译后生成json文件,内含ABI数据

TruffleContract函数在其他的js中(用来获取其他合约的名称)

非常标准的逻辑,私有链链接合约实例化

数字货币转账框架,继承

4-安装openzeppelin代币框架(代币发布成功)

将合约和函数补全才能

在区块链比较火的时候发ico,进行众筹

无非就是发行数字名称和总量

已经有解决方案

使用开源代币框架进行发币

使用npm本地安装

在项目根目录下

这里需要注意的是使用npm安装的是最新版本的 openzeppelin-solidity,使用的合约都是0.8了,而之前的安装环境是0.5.16的(后续冲突会无法继承使用),所以不使用下方命令安装

npm install openzeppelin-solidity

将开源框架下载到本地

使用cnpm安装

E:\truffle\token\github\tutorialtoken-box-master>cnpm install openzeppelin-solidity

结果还是0.8的

算了使用课程提供的代码进行吧

然后新建合约,输入如下

合约直接继承ERC20即可

pragma solidity ^0.5.0;

import "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol";//npm导入的库

contract TutorialToken is ERC20 {

  string public name = "TutorialToken";//名称
  string public symbol = "TT";  //代币符号
  uint8 public decimals = 2;  //代币精度
  // 发行自己代币的总数量
  uint public INITIAL_SUPPLY = 12000;
  // 构造函数
  constructor() public {
    // 调用父类函数,传入合约所有者地址和发币总额
      _mint(msg.sender, INITIAL_SUPPLY);
  }

}

此发行的币不是以太坊等币,而是自己的币,若有合适产品并且大家都认可你的代币,那么你的代币就有价值

重要的是如何让别人相信你的代币有价值

此时完成迁移文件要,以阿拉伯数字开头

打开ganache

项目运行要链接到私有链,连接到的接口如下

进行合约的编译和部署

E:\truffle\token\github\tutorialtoken-box-master>truffle develop
truffle(develop)> deploy --reset

直接使用课程提供的代码进行编译部署

truffle develop
truffle(develop)> deploy --reset

在另一个cmd窗口运行

Npm run dev

Web3为全局变量,若存在则没问题。不存在链接现有的私链

一旦页面合约初始化完毕就查询当前的账户余额

这里是0,因为链接的账户无钱

有这些代币的账户为部署此转账合约的账户中

找到上方部署的账户地址,找到对应私钥导入metamask中

添加代币



此时就显示代币是数字了,代币算是发布成功了


代币间的转账也需要消耗gas

一个没有以太坊的钱有代币的账户发给另一个账户代币交易时无法成功的失败

此时明确运行在以太坊上的代币之间的转账操作是需要消耗gas的

Result.c

转账成功后查询当前账户的余额

相关推荐
星尘安全42 分钟前
安全工程师入侵加密货币交易所获罪
安全·区块链·漏洞·加密货币
Thanks_ks4 小时前
探索计算机互联网的奇妙世界:从基础到前沿的无尽之旅
物联网·云计算·区块链·tcp/ip协议·计算机互联网·万维网·未来科技
BlockOne114 小时前
应用链风口下,一键发链该如何选择?
区块链
Footprint_Analytics4 小时前
Footprint Analytics 助力 Sei 游戏生态增长
游戏·web3·区块链
BSV区块链4 小时前
如何在BSV区块链上实现可验证AI
人工智能·区块链
电报号dapp1194 小时前
DeFi 4.0峥嵘初现:主权金融时代的来临
金融·区块链
搬砖的小码农_Sky8 小时前
什么是零知识证明?
区块链·密码学·零知识证明
TinTin Land8 小时前
高活跃社区 Doge 与零知识证明的强强联手,QED 重塑可扩展性
区块链·零知识证明
Roun31 天前
去中心化存储:Web3中的数据安全新标准
web3·去中心化·区块链
请不要叫我菜鸡1 天前
分布式——一致性模型与共识算法
分布式·后端·区块链·raft·共识算法·zab