dapp 开发:10 分钟 5 步发布以太坊 ERC20 代币

1.安装 METAMASK

Brings Ethereum to your browser

一个可以浏览器上进行操作的以太坊钱包,推荐 Chrome。

Chrome 插件安装地址:

https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn​chrome.google.com

2.在 METAMASK 创建钱包

 

3.从以太坊官网复制代币代码模板

Create a cryptocurrency contract in Ethereum​www.ethereum.org

https://www.ethereum.org/token

从以太坊官网复制的代码模板

pragma solidity ^0.4.16;

interface tokenRecipient { function receiveApproval(address _from, uint256 _value, address _token, bytes _extraData) external; }

contract TokenERC20 {
    // Public variables of the token
    string public name;
    string public symbol;
    uint8 public decimals = 18;
    // 18 decimals is the strongly suggested default, avoid changing it
    uint256 public totalSupply;

    // This creates an array with all balances
    mapping (address => uint256) public balanceOf;
    mapping (address => mapping (address => uint256)) public allowance;

    // This generates a public event on the blockchain that will notify clients
    event Transfer(address indexed from, address indexed to, uint256 value);

    // This notifies clients about the amount burnt
    event Burn(address indexed from, uint256 value);

    /**
     * Constructor function
     *
     * Initializes contract with initial supply tokens to the creator of the contract
     */
    function TokenERC20(
        uint256 initialSupply,
        string tokenName,
        string tokenSymbol
    ) public {
        totalSupply = initialSupply * 10 ** uint256(decimals);  // Update total supply with the decimal amount
        balanceOf[msg.sender] = totalSupply;                // Give the creator all initial tokens
        name = tokenName;                                   // Set the name for display purposes
        symbol = tokenSymbol;                               // Set the symbol for display purposes
    }

    /**
     * Internal transfer, only can be called by this contract
     */
    function _transfer(address _from, address _to, uint _value) internal {
        // Prevent transfer to 0x0 address. Use burn() instead
        require(_to != 0x0);
        // Check if the sender has enough
        require(balanceOf[_from] >= _value);
        // Check for overflows
        require(balanceOf[_to] + _value >= balanceOf[_to]);
        // Save this for an assertion in the future
        uint previousBalances = balanceOf[_from] + balanceOf[_to];
        // Subtract from the sender
        balanceOf[_from] -= _value;
        // Add the same to the recipient
        balanceOf[_to] += _value;
        emit Transfer(_from, _to, _value);
        // Asserts are used to use static analysis to find bugs in your code. They should never fail
        assert(balanceOf[_from] + balanceOf[_to] == previousBalances);
    }

    /**
     * Transfer tokens
     *
     * Send `_value` tokens to `_to` from your account
     *
     * @param _to The address of the recipient
     * @param _value the amount to send
     */
    function transfer(address _to, uint256 _value) public {
        _transfer(msg.sender, _to, _value);
    }

    /**
     * Transfer tokens from other address
     *
     * Send `_value` tokens to `_to` on behalf of `_from`
     *
     * @param _from The address of the sender
     * @param _to The address of the recipient
     * @param _value the amount to send
     */
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
        require(_value <= allowance[_from][msg.sender]);     // Check allowance
        allowance[_from][msg.sender] -= _value;
        _transfer(_from, _to, _value);
        return true;
    }

    /**
     * Set allowance for other address
     *
     * Allows `_spender` to spend no more than `_value` tokens on your behalf
     *
     * @param _spender The address authorized to spend
     * @param _value the max amount they can spend
     */
    function approve(address _spender, uint256 _value) public
        returns (bool success) {
        allowance[msg.sender][_spender] = _value;
        return true;
    }

    /**
     * Set allowance for other address and notify
     *
     * Allows `_spender` to spend no more than `_value` tokens on your behalf, and then ping the contract about it
     *
     * @param _spender The address authorized to spend
     * @param _value the max amount they can spend
     * @param _extraData some extra information to send to the approved contract
     */
    function approveAndCall(address _spender, uint256 _value, bytes _extraData)
        public
        returns (bool success) {
        tokenRecipient spender = tokenRecipient(_spender);
        if (approve(_spender, _value)) {
            spender.receiveApproval(msg.sender, _value, this, _extraData);
            return true;
        }
    }

    /**
     * Destroy tokens
     *
     * Remove `_value` tokens from the system irreversibly
     *
     * @param _value the amount of money to burn
     */
    function burn(uint256 _value) public returns (bool success) {
        require(balanceOf[msg.sender] >= _value);   // Check if the sender has enough
        balanceOf[msg.sender] -= _value;            // Subtract from the sender
        totalSupply -= _value;                      // Updates totalSupply
        emit Burn(msg.sender, _value);
        return true;
    }

    /**
     * Destroy tokens from other account
     *
     * Remove `_value` tokens from the system irreversibly on behalf of `_from`.
     *
     * @param _from the address of the sender
     * @param _value the amount of money to burn
     */
    function burnFrom(address _from, uint256 _value) public returns (bool success) {
        require(balanceOf[_from] >= _value);                // Check if the targeted balance is enough
        require(_value <= allowance[_from][msg.sender]);    // Check allowance
        balanceOf[_from] -= _value;                         // Subtract from the targeted balance
        allowance[_from][msg.sender] -= _value;             // Subtract from the sender's allowance
        totalSupply -= _value;                              // Update totalSupply
        emit Burn(_from, _value);
        return true;
    }
}

4.修改代币参数

主要是修改名称,如截图所示,修改为你的代币名称。

5.发布到以太坊网络

以太坊在线开发环境,可以自动连接到 METAMASK。

https://remix.ethereum.orgRemix – Solidity IDERemix – Solidity IDE

https://remix.ethereum.org/

如果你的以太坊账号上已经有余额的话,就可以直接进行部署了。

 

发布之后可以在 METAMASK 直接看到自己刚发布的代币:

AICoin 是为了促进人工智能社区发展诞生的代币,代币的主要用途是奖励人工智能开发者分享数据和模型。

英文名:AICoin

中文名:人工智能币

简称:AIC

总量:100000000.000AIC

技术合作微信:fendouai,注明:DAPP

DAPP开发,区块链开发群号:374475398

DAPP 总群,加微信,发送:dapp 自动拉入微信总群

 

dapp 开发盛会:QTUM 2018 黑客马拉松

QTUM 2018 黑客马拉松

将创意与想法实现的舞台

与全世界开发者一道加入Qtum量子链黑客马拉松:一个面向全球的在线马拉松!

Qtum黑客马拉松将邀请来自世界各地的顶尖开发者,利用QTUM区块链技术,一同重塑数字内容、娱乐、身份识别、区块链经济的新面貌。

参与的开发者将有机会与Qtum团队及其他区块链专家们零距离接触,体验Qtum的各种全新功能。在截止日前报名参与黑客马拉松,将有机会赢取价值高达50万美金的QTUM代币奖励!部分获奖团队核心成员还将受邀参加QTUM在旧金山举办的首届DevCon以及获得虚拟孵化支持。

 

Qtum 2018 黑客马拉松

https://hackathon.qtum.org/zh

DEL&极部落区块链技术沙龙-高性能TPS公链之容器与分片

主办方介绍:


DEL通过最先进的区块分片技术(Sharding BlockChain)、链上容器(Docker Layer)技术、侧链(Sidechain)技术以及DPOS机制,解决区块链发展进程中现有的实用化程度低、交易确认时间长、多链融合能力弱、存储空间需求大等问题,实现应用快速落地、快速交易、多链融合、低存储需求,开启区块链4.0时代。

极部落GeekBlock——技术社区生态构建者。自成立以来,已经在全国多个城市组织技术社群活动几十场,几年运营下来积累了5000+互联网公司CTO,300+极客技术大咖,以及数十万技术开发人员资源。

一览英才网创建于2006年,是基于行业垂直细分和区域横向细分的特大型网络招聘平台,深耕专业技术人才全球范围内的配置与在线学习服务,为全国7000多万专业技术人才提供了相关服务。

本周日深圳区块链技术沙龙,过来聊聊,http://www.huodongxing.com/event/9445301951800?td=2241799495385

dapp 是什么?五分钟一文明白 dapp,dapp 和 app 有什么区别?

DApp 是 decentralized application 中文分布式 APP 的缩写。
一个 DApp 有后台代码运行在分布式点对点网络中。传统的 APP 的后台代码是运行在中心化的服务器。
一个 DApp 的前端代码可以由任何语言开发,和传统的 APP 一样。还有,DApp 的前端代码可以托管在分布式存储的服务中,例如:Swarm 或者 IPFS。
如果一个 应用 = 前端 + 后台,因为以太坊合约是由运行在以太坊分布式点对点网络中的代码组成的,所以 分布式应用 = 前端 + 合约。
图片演示一个 DApp 架构:

dapp=分布式应用:http://dappchina.cn/

最火的区块链来了!阿里云全球区块链大赛发布!

6月25日,在北京国家会议中心2018 LF Asia大会上,阿里云宣布启动2018全球区块链大赛,通过天池平台,面向全球区块链开发者设置了数据资产、供应链金融、溯源技术等多个领域的命题,参赛选手可自由选择并提交解决方案。阿里云希望通过集思广益征集各类区块链解决方案,并引入行业客户验证方案效果,将区块链技术应用到实体经济中去,加快这项新兴技术的普及。

阿里巴巴资深技术专家易立发布全球区块链大赛

“区块链技术是驱动下一代互联网变革的核心技术,我们希望这次区块链大赛,能激发全球的开发者协同创新。”阿里云区块链产品技术负责人易立表示:“应用生态和开放性是决定区块链技术长远发展的重要因素,阿里云将同时支持开源的企业级区块链技术Hyperledger Fabric和蚂蚁区块链,给客户更多开放的选择。

 

据悉,本次大赛的评审团来自对区块链技术最关注的行业和区块链技术最权威的代表,包括来自Hyperledger基金会、德国电信、纸贵科技、网商银行、阿里巴巴等在内的数十位专家将对选手的作品做出专业的评审。Hyperledger基金会中国负责人龙文选先生也到场致辞,表示了Hyperledger对大赛的支持并预祝大赛圆满成功。

阿里云研究员余锋(左)和Hyperledger基金会中国负责人龙文选(右)

作为一种革新的分布式账本技术,区块链具备去中心化、公开透明、不可篡改等特点,本次大赛为极客们提供了一个自我发挥舞台,以期为区块链技术健康而快速发展做出一份贡献:比赛中选手在阿里云基于Hyperledger Fabric的区块链技术平台之上,构建相应业务场景创新应用。

全球正处于新一轮互联网技术革新的起点,而中国正成为以区块链为代表的新技术的中心。在“2017全球区块链企业专利排行榜(前100名)”上,中国入榜企业占比达到49%之高,其次为美国占比33%。阿里巴巴集团以全球专利总量49件排名第一,美国银行排名第二。

目前,阿里巴巴的区块链技术在金融领域已有深度应用,6月25日,港版支付宝AlipayHK上线了全球首个基于区块链的电子钱包跨境汇款服务。在港工作的菲律宾人格蕾丝(Grace)完成了第一笔汇款,耗时仅3秒。几个月前,阿里云也推出了一系列区块链解决方案,开发者在几分钟之内就能够完成一项区块链应用的配置和部署,该方案已应用在天猫奢侈品的正品溯源上,成效显著。

阿里云官网显示,本次全球区块链大赛分为初赛、复赛和决赛三个阶段,决赛将在2018杭州云栖大会现场进行最后的比拼,业内领袖和行业大客户也将齐聚一堂,共同探讨区块链技术健康发展。

赛事简介

大赛关注并致力于促进区块链技术在不同场景应用落地,阿里云会为创新优秀项目提供技术指导与商业孵化,以期为区块链行业的健康与理性发展。大赛由阿里云主办,多家行业知名机构协办,邀请行业里国内外重量级嘉宾评审指导。

大赛分为初赛、复赛、决赛三个阶段。初赛会邀请各位报名者完成一个区块链技术的基础任务,复赛请各位选择一个场景应用并制作一个解决方案,场景包括:数据资产业务场景、供应链金融场景、底层技术、公益、医疗、物流、溯源、知识版权等领域,决赛则会从入围选手/团队中评选出优胜者。每个通过初赛的团队将获得阿里云提供的发布平台使用权限,该平台国内外均可用。

区块链开发交流群,加微信自动邀请进群:

2018阿里云全球区块链大赛

https://tianchi.aliyun.com/programming/introduction.htm?spm=5176.100066.0.0.2c3f33af5TokAL&raceId=231665

送NAS免费玩 DApp !星云激励计划玩法升级!

激励计划进入第6周啦!星云主网目前已有3000+应用,感谢开发者的积极参加!

优秀的应用离不开用户的支持,为了鼓励用户体验星云DApp,今天起,星云官方向官网新注册用户免费赠送小额NAS,方便大家无负担直接玩应用!已经有小伙伴收到币了呢,赶紧体验起来!

接收免费NAS的要求:

1 在星云官网注册,或通过他人官方邀请链接注册。

(incentive.nebulas.io/cn/signup.html)

2 验证您的注册邮箱。

3 填写正确的主网星云币地址。一定要填写哦!否则无法接收免费NAS哦。

我们派送的是主网星云币,并非ERC20代币。

目前满足以上要求就能自动获取NAS啦!

https://mp.weixin.qq.com/s/yCNO9Nit9Gz9U0K_8ODkPw

星云超级贡献者 DAPP 开发 激励计划实施细则官方解读

星云团队在2018年6月7日正式宣布星云激励计划升级!超级贡献者激励计划启动。在北京时间2018年6月10日00:00至2018年7月7日 24:00期间,每周通过incentive.nebulas.io官方邀请码邀请到的新注册用户数排名前20的推广者将成为星云超级贡献者,分享每周1万NAS的超级贡献者奖,并与星云团队的3名代表共同组成23人的DApp评审团,投票选出每周的冠、亚、季军DApp大奖和月度DApp大奖!

计划一经宣布,即获得了社区的广泛的关注,同时也有一些小伙伴对于细则存在疑问和不解,今天就让我们进一步解读公告和细则中的核心信息。

初心(理念):  

星云第一季激励计划在启动以来的四周里,颇受用户好评,社区反响强烈。据相关数据统计,目前已有近3000个DApp在星云主网上运行,数量上已经超越了以太坊,质量上也不断攀升,优秀DApp不断涌现,开发者社区初具规模。

星云的理念是构建可持续进化的良性区块链生态,让每一个人在去中心化协作中公平获益。星云不仅仅需要DApp的优秀开发者,同样需要使用这些DApp的大量用户,我们希望有社区领袖通过组织和引导带来用户;有行业媒体通过宣传和推广来提高星云的影响力,让更多的人了解星云;需要交易所通过平台带来认同星云的价值投资者,提升整个星云经济体的流动性。同时更加需要这些不同类型的生态成员之间互动协作,良性发展,不断促进整个星云生态的发展壮大,让星云生态中的每一个人公平获益!

因此,星云开启了超级贡献者激励计划,为有志于参与星云生态建设的社区推广者、行业媒体、交易所等各类团体和个人开设新的平台,为星云生态拉新助力,让其中真正有能力有影响力的团体或个人在公开的竞争中脱颖而出获得对应的NAS激励成为星云社区的超级贡献者,并参与到社区的管理中来!

奖金来源:

星云超级贡献者激励计划的奖金全部来源于星云社区发展基金。星云开发者激励基金依然全部用于开发者激励,保持不变。

奖项解读:

超级贡献者激励计划的奖项(权益)主要分为两部分:拉新奖励和DApp评审投票权益。

1、拉新奖励:星云拉新就是星云贡献者们分享邀请码链接邀请更多的用户在星云官网注册激励计划,基于ATP应用协议Smart Airdrop功能,用户注册后将会获得一定量的NAS,供其去使用星云生态中的各种DApp应用,为星云生态引入更多真实的DApp用户,构建良性发展的区块链生态。任何人都可以参与,为星云做宣传,拉用户。

  • 你如果具备线上、线下的社区资源,那么你可以组织成立自己的星云社区参与星云激励计划,为星云宣传推广,发展新的用户,星云会给予你对应的奖励和支持,你也可以用所获的奖励回馈你的社区成员,进一步发展壮大你自己的星云社区;
  • 你如果有媒体资源或者本身就是自媒体,那么你也可以编写和推广宣传星云链的相关文章,从你的读者和粉丝群体中不断为星云发展新的用户,星云激励计划同样会给予你相应的奖励和回馈;
  • 你如果本身就是交易所,那么调动你的用户资源前来参与星云激励计划将会更加方便,帮助星云拉新的同时,也能从不断成长的星云生态中为你的交易所引入更多的高质量用户群体。

2、优秀DApp评审投票权:在每周的拉新大赛中表现突出的前20名推广者将成为星云超级贡献者,并获得周优秀DApp大奖的评审投票权,这种投票评选优秀DApp的方式,不仅仅是对前期激励计划中社区有关DApp评选方式的建议和呼声的一种相应,更是对未来星云链贡献度证明(Proof of Devotion,PoD)共识机制与社区治理机制的一种实践和验证。对星云生态发展有着突出贡献的贡献者们将会被赋予参与社区建设的权力,代表其所属的用户群体投票评选周优秀DApp大奖,以及月度DApp大奖。对于获得了投票权的超级贡献者们,我们鼓励你们去组织社区用户体验参选的DApp,并充分征询社区用户的意见,代表社区评选出真正受欢迎的优秀DApp大奖。

优秀DApp票选方法解读:  

周优秀DApp大奖以及之后的月度优秀DApp大奖均由每周20名超级贡献者和3名星云团队代表共同投票选出,投票采用智能合约锁仓NAS的方式进行,投票流程公开透明,投票数据和结果均存在于星云链上,真实可查。

  • 投票即锁仓,超级贡献者将NAS转入星云官方发布的票选智能合约并选择对应的DApp即完成投票,每位超级贡献者最高可以锁仓10000NAS,即投10000票。使用NAS投票,并且投票即锁仓,是星云独创的投票方式,我们认为这一方式更符合区块链社区的自治理念;
  • 依据投票结果按照对应比例解锁返币,冠军DApp返还90%,亚军返还95%,季军返还100%,优秀DApp返还105%。设置不同返还比例的目的是为了一定程度上防止刷票作弊,超级贡献者可以根据规则合理的设计自己的投票策略。
小结:

星云超级贡献者激励计划的目的就是为了为星云生态引入更多的真实用户来使用DApp,在拉新的过程中,激励来自各个领域的超级贡献者,共同参与到星云社区建设和生态推广中来,同时用评审团投票的方式来评选优秀DApp,引入社区自治的机制。构建可持续进化的良性区块链生态,让每一个人在去中心化协作中公平获益!

https://mp.weixin.qq.com/s/1lPrqhshwnEWLq2fisnEEw

星云激励计划介绍-去中心化应用(DApp)

星云激励计划介绍

星云链是致力于加速构建可持续发展良性生态的下一代公链,星云链主网已于2018年3月30日上线。 为了构建可持续升级良性生态,星云基金会鼓励更多开发者在星云链主网上持续开发更多、更好的去中心化应用(DApp)。
秉承着让每个人在去中心化协作中公平获益的理念,星云基金会发起星云激励计划第一季,欢迎全球开发者和认同星云理念的推广者参加。

第一季时间

北京时间 2018年5月7日00:00~2018年7月2日00:00,为期8周

参与对象

懂Javascript,已经掌握或愿意了解区块链应用开发的开发者;

奖项设置

激励计划分为 开发者激励 和 推广者激励 两类。

开发者激励

新应用奖
每成功提交一个DApp即可获得 100 NAS
每周优秀应用奖
周冠军(1名) 10,000 NAS
周亚军(1名) 5,000 NAS
周季军(1名) 3,000 NAS
周优秀奖(20名) 300 NAS

每个应用每月不可重复获得周度冠亚季军,但可以重复获得优秀奖。

星云按照独创的算法评选优秀应用,参见下方“评选规则”。

月度开发大奖
1名 20,000 NAS

月度开发者大奖从每周前3名中产生(每月共12个优秀应用)。

优秀开发者更有机会加入星云实验室,获得星云技术、资金、社区资源等全赛道支持。星云愿与您携手向前,成就您的事业。

推广者激励

拉新奖
您推荐的开发者成功提交了应用,您即可获得 40NAS + 20% 优秀应用奖励提成
月度推广者大奖
月推广冠军(1名)10,000 NAS
月推广亚军(2名)2,500 NAS
月推广季军(3名)1,000 NAS

推广者每月(每4周)推荐的有效开发者人数大于等于5人,即可参与月度大奖评选。

如果推广者推荐的有效开发者人数相同,则优选最早达成的推广者。

有效开发者是指:在评选期间至少成功提交一个DApp的开发者。

星云的激励计划每提交一个有效DApp即可获得100 NAS

https://incentive.nebulas.io/cn/signup.html?invite=zbuIr

星云激励计划-每提交一个有效DApp即可获得100 NAS

星云激励计划-每提交一个有效DApp即可获得100 NAS https://incentive.nebulas.io/cn/signup.html?invite=zbuIr

 

配套教程:

手把手教你星云DApp开发(第二部分)

https://mp.weixin.qq.com/s/2ZrKnOoWyNxMUyy2OUlpiA

手把手教你星云DApp开发(第一部分)

https://mp.weixin.qq.com/s?__biz=MzU2MTI5OTI3MA==&mid=2247484586&idx=2&sn=c0cd24f74a8527a7fd07391b758a4bf8&chksm=fc7bae83cb0c2795e82e1bbba1f083f6bfd1650dea46cf130265c3e86ad5d3acb22d035e768a&scene=21#wechat_redirect