使用Node.js开发以太坊ERC 20标准的代币
发布于 6 年前 作者 lcepy 8879 次浏览 来自 分享

应好友狼叔的要求,将此文发布在cnode上,已经去除掉广告

目前众多的山寨币都是基于以太坊开发出来的ERC 20标准代币,这也是为什么我要研究这个的原因,想看明白这些山寨币的潜在价值,从纯技术的角度来说,这些山寨数字货币似乎都没有太大的价值,因为随着以太坊工业级的开发平台形成,个人也可以开发和发行代币的,这篇文章就是要讲一讲如果使用Node.js,我们该怎么搞的问题。所以,从经济的角度来说,山寨数字货币存在极大的风险(发行方几乎0成本),那么现在市场上的溢价又是从哪里而来呢?从发行方想要用这个代币做什么事情而来,ETH生态你可以理解为“阿里巴巴”,众多的山寨数字货币,你可以理解为在“阿里巴巴”这个生态里的众多企业,有人发行了流量币,专门在电商领域里导流量来赚钱,而这个流量币是发行方用来募集资金所用,流量币的价值,在于发行方使用募集来的资金,去做这个导流的事情,这是一种通俗的讲法。

(注明:本文不构成投资建议,仅面向前端开发者,去了解如何开发发行个人的数字货币。另外本文的一些基础知识,需要本文的读者自行了解,默认你已经知道区块链基础知识,Node.js开发,网络协议等

目前在Node.js生态里已经出现了“瑞士军刀”级别的开发框架,你可以无视原版Go实现的以太坊网络节点,也不需要了解太多以太坊的原理(当然是Demo级别),你可以通过访问 http://truffleframework.com/docs/getting_started/installation 来了解truffle项目,这个项目非常类似create-react-app或vue-cli(面向前端的开发同学),用它来启动一个ERC项目骨架。

$ npm install -g truffle
$ mkdir MetaCoin && cd MetaCoin
$ truffle unbox metacoin

(注明:unbox 是去下载某个工程的范例,类似脚手架工程,需要科学上网。)

如果你不需要这些脚手架工程,可以使用 truffle init 去重新创建一个新的项目。接着,你需要选择以太坊网络,目前truffle官网上推荐了多种不同的以太坊客户端,这些客户端主要针对你是选择开发还是部署等等场景,如果是开发的话,可以直接使用truffle develop,也正好与truffle框架配套,不用去做多余的配置。其中,有一行警告,你必须要认真对待:“Do not use this mnemonic on the main Ethereum network (mainnet). If you send ETH to any account generated from this mnemonic, you will lose it all!”,不要向这个网络发送任何ETH就好。

在已经下载好的工程中,主要关注两个目录“contracts”和“migrations”,前者属于合约,后者属于部署脚本,你可以把一些名字换成你自己的,仔细阅读“http://truffleframework.com/docs/getting_started/contracts” 来做配置的更改。

接着你需要创建一个“4_example_migration.js”文件,然后编写:

var MyContract = artifacts.require("MyContract");
module.exports = function(deployer) {
  // deployment steps
  deployer.deploy(MyContract);
};

编译合约和部署合约,这两个操作就是两个命名:truffle compile 和 truffle migrate,过程会有一些时间。

基本上一些其他的开发方式和你开发一个Node.js应用一样,使用npm来管理模块,然后用JavaScript去做一些业务上的开发。truffle的配置文件主要在truffle.js中,一些其他的代码,你可以根据你的业务场景去做一些开发。

现在,你可以编写一些测试代码来测试你的代币发行是否成功(http://truffleframework.com/docs/getting_started/javascript-tests)。

至此,开发阶段就已经结束了,大家已经看见了,基于以太坊智能合约的开发入门非常的简单,但是目前区块链生态里的应用还非常的有限和单薄,目前应用场景最多的就是ico,通过代币来募集资金,进行项目的运作。

如果这些分享对你有用,支持打赏:

Cardano打赏地址:DdzFFzCqrhssiX2gAn17QNegNvSEixGi5RtgmEqeNrghMnU3F6GbmD1SWA3ZEKkTCuYnMnXTTpwWZrJpfxxiaLwg1Fm4p5z5WeyQWmbB ERC 20标准的任意代币,打赏地址: 0x4A40Eb870DcF533D4dC097c3d87aaFE9f64490A1

12 回复

那啥,是用Js的方式来写合约代码?

来自酷炫的 CNodeMD

金钱驱动技术,赞

来自酷炫的 CNodeMD

大神搞个基于bts的吧

棒棒哒,node在区块链部分还是大有可为的

完全看不懂。。。

运行 truffle migrate 报错 怎么解决? Error: No network specified. Cannot determine current network. at Object.detect (/Users/jin/.nvm/versions/node/v8.9.3/lib/node_modules/truffle/build/cli.bundled.js:41338:23) at /Users/jin/.nvm/versions/node/v8.9.3/lib/node_modules/truffle/build/cli.bundled.js:202239:19

原来要在 truffle.js 配置一下

如果用GANACHE 端口是7545 如果是用 TRUFFLE DEVELOP 端口是 9545 默认不写是8545 http://truffleframework.com/docs/advanced/configuration

module.exports = {
  // See <http://truffleframework.com/docs/advanced/configuration>
  // to customize your Truffle configuration!


    networks: {
        development: {
            host: "127.0.0.1",
            port: 7545,
            network_id: "*" // Match any network id
        }
    }


};

推荐一个适合新手的以太坊DApp开发教程:

以太坊入门开发教程——区块链投票系统

@2596887568 你这个通过node.js和truffle搞实际应用,能搞个更深入的node.js的专门的区块链课程不?

@jimilai 刚搞了个以太坊DApp开发电商平台的实战,你可以看看:http://xc.hubwiz.com/course/5abbb7acc02e6b6a59171dd6

回到顶部