送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

星云激励计划第一季启动在即,千万奖金奖励区块链开发者

星云链主网已于2018年3月30日上线。为了构建可持续升级良性生态,星云团队鼓励更多开发者在星云链主网上持续开发更多、更好的去中心化应用(DApp)。秉承着让每个人在去中心化协作中公平获益的理念,星云团队在此向全球开发者和认同星云理念的推广者发出邀请,欢迎参加第一季星云激励计划。有了星云主网,仅需Javascript和一杯下午茶的时间,您就可以开发属于您的第一个DApp。

区块链开发从未如此简单,

每个人都可以在区块链上开发自己的应用。

人人都是加速器,

每个人都可以在推广激励计划中体现价值,获得收益。

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 开发

 

5分钟在以太坊上发行自己的代币

声明:本文仅为兴趣爱好者作为教程参考,请不要用于任何的商业用途。

在正式开始之前,需要准备:
科学上网的工具
chrome 浏览器

那么我们开始吧。
第一步:在chrome浏览器上安装metamask的插件。
点击以下网址进行安装, 点击添加至chrome。
[https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn],

或者进入官网安装下载chrome插件:
https://metamask.io/

点击添加扩展程序

注:metamask除了是一个简单的钱包外,它可以使得Chrome浏览器变身成以太坊浏览器,让使用者通过浏览器和以太坊智能合约互动

第二步: 设置metamask账号 并转一些eth
点击chrome浏览器右上角metamask图标,同意隐私条款和使用条款

输入并确认密码,创建账号

将12个助记词抄下来,保存好

此时账号已经创建好,点击右上角更多,可以开始向你的地址转账了。
可以向你的地址转0.01颗eth,用于发行代币

第三步: 发行代币
进入以下网站:
[http://tokenfactory.surge.sh/#/factory]

如图我们打算发行总量为 100000.00 的RBC,注意此时我们选择的小数点后两位,这也就意味着我们的发行量是10万,如果我们选择的是小数位1位,总量将变为100万。

如图提示我们本次发行代币的矿工费最多是5.8USD, 你可以通过改变Gas价格来调高或者降低费用,gas价格越高,执行速度越快。
点击提交,恭喜你发行了自己代币!剩下的就是等待了。

你可以在[https://etherscan.io/ 查询你的metamask eth地址找到你刚才的交易。找到contract creation这一笔。]

复制你的token contract address

将刚刚的合约地址贴进去 [http://tokenfactory.surge.sh/#/tokensearch]

你可以向其他用户转账啦!注: 由于你发行的是在以太坊上的erc-20代币,所以转账也需要花费eth哦

Token创建后任何人都可以在这里搜索到你的代币及详情 [https://etherscan.io/tokens]

 

原文链接:http://wangmengqi.logdown.com/posts/2473648-tutorial-workshop-on-smart-contracts-issued-tokens

Solidity 开发文档

Solidity is a contract-oriented, high-level language for implementing smart contracts. It was influenced by C++, Python and JavaScript and is designed to target the Ethereum Virtual Machine (EVM).

Solidity is statically typed, supports inheritance, libraries and complex user-defined types among other features.

As you will see, it is possible to create contracts for voting, crowdfunding, blind auctions, multi-signature wallets and more.

https://solidity.readthedocs.io

【文档翻译系列】Solidity语言

Solidity是一种智能合约高级语言,运行在Ethereum虚拟机(EVM)之上。

Solidity与其它语言相关的特点?

它的语法接近于Javascript,是一种面向对象的语言。但作为一种真正意义上运行在网络上的去中心合约,它又有很多的不同,下面列举一些:

  • 以太坊底层是基于帐户,而非UTXO的,所以有一个特殊的Address的类型。用于定位用户,定位合约,定位合约的代码(合约本身也是一个帐户)。
  • 由于语言内嵌框架是支持支付的,所以提供了一些关键字,如payable,可以在语言层面直接支持支付,而且超级简单。
  • 存储是使用网络上的区块链,数据的每一个状态都可以永久存储,所以需要确定变量使用内存,还是区块链。
  • 运行环境是在去中心化的网络上,会比较强调合约或函数执行的调用的方式。因为原来一个简单的函数调用变为了一个网络上的节点中的代码执行,分布式的感觉。
  • 最后一个非常大的不同则是它的异常机制,一旦出现异常,所有的执行都将会被回撤,这主要是为了保证合约执行的原子性,以避免中间状态出现的数据不一致。

 

原文链接:http://www.tryblockchain.org/

如何创建代币