Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

教程:用以太坊制作自已的竞争币

忆神姆原们
208 0 0
本教程主要参考以太坊官方博客,外加自己的实践。创建代币不需要自己写代码,只要会复制粘贴就可以搞定,这也是以太坊强大之处。下载钱包首先到这里(https://github.com/ethereum/mist/releases)根据自己的操作系统下载相应的钱包。然后,创建一个以太坊账户。
; _% R+ \2 e8 w; o7 K/ e' m
6 v! Q1 R1 i  q- S另外,你还需要一点以太币,大多数合约只需要价值不要1毛钱的以太币。如果你没有以太币,又不想到国外交易所折腾,可以选择用微信扫描下面的二维码直接在微信中购买:3 ^2 M1 L4 [+ {) W
0 K* _' d5 V1 \8 X! ^1 p8 G
创建账户并购买到1个以太币以后,钱包界面如下,创建新币合约我们要创建的第一个合约是一个代币合约。/ G0 l' o9 c% Y3 j7 i! q, \/ R+ s4 b4 e
# X+ t$ P( D$ M1 ~
以太坊生态系统中的代币可以代表任何可以交易的东西:币(coin)、积分、黄金证券、欠条(IOU)等。
% ]1 W, M- n* E+ _9 ?- `3 g$ Y8 u3 t' B
因为所有的代币都以标准化的方式实现一些基本的特性,这样意味着你自己创建的代币将于以太坊钱包、使用相同标准的任何其它客户端或者合约相兼容。点击红框中的Contract(合约)。
1 s+ u: @+ G" W. i9 J: ~4 r4 s
! b3 e$ T9 f0 l/ B将红框中原有的代码删除,将下面的代码粘贴到里面。5 E; E, E+ u# s( ?6 w1 V+ ?* ]' Y
  1. /*4 B8 v. R2 J- @7 l) z6 d- ?" Q$ v' {
  2. This creates a public tradeable fungible token in the Ethereum Blockchain.
    : W" S4 H) o2 K3 K( B0 G) p- }
  3. https://github.com/ethereum/wiki/wiki/Standardized_Contract_APIs8 S: G2 M+ j) k+ A2 W- B
  4. Unmodified this will create a cryptoasset with a fixed market cap; Y- J. ]1 Z% K( f7 R
  5. wholly owned by the contract creator. You can create any function
    , F7 ?8 X. e- ?. X. y6 a. s" l% X3 ]9 ^
  6. to change this contract, like allowing specific rules for the issuance," W9 d' A7 C/ h& @) M$ K0 s
  7. destruction and freezing of any assets. This contract is intended for
    5 G! ]) Z) Z! m6 t9 k7 G% u! z6 N
  8. educational purposes, you are fully responsible for compliance with
    8 L0 j% `' A! X, X* n
  9. present or future regulations of finance, communications and the- Z3 P' y2 z" Z' g  W4 R* Z/ ?) j
  10. universal rights of digital beings.
      w& B3 Z. s& C1 d$ b1 k
  11. Anyone is free to copy, modify, publish, use, compile, sell, or
    $ K+ I$ j7 D3 O$ w
  12. distribute this software, either in source code form or as a compiled
    0 m, ?( c/ L$ L
  13. binary, for any purpose, commercial or non-commercial, and by any" o# J! e3 D- O) G6 g3 W
  14. means.9 W  m8 v% w1 p% [, j( @
  15. In jurisdictions that recognize copyright laws, the author or authors( `. y: c9 U$ n; m& I2 N
  16. of this software dedicate any and all copyright interest in the1 r! G. }! e4 U2 p% v, i
  17. software to the public domain. We make this dedication for the benefit' [  d+ I- M" j7 y4 ?+ j( w3 B
  18. of the public at large and to the detriment of our heirs and
    0 |" D% m" Y6 n/ Q% X
  19. successors. We intend this dedication to be an overt act of
    - d* ], S4 u4 x8 s; m
  20. relinquishment in perpetuity of all present and future rights to this3 N6 A; S# ?- q3 Y; d
  21. software under copyright law.  t5 E& w7 ]: X3 P( K% V9 d
  22. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    4 I, W4 ]" R) |$ k( f$ D
  23. EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF" K3 w4 D6 ^) X: @/ T* }
  24. MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
    + ]1 {, [8 b9 r- x! z
  25. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
    - U7 X( ]/ w: `% `! M
  26. OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
    ) W2 W$ _7 v( h; R. k1 j! [, r
  27. ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR- h& ^% S1 X& U! X6 `2 R/ w
  28. OTHER DEALINGS IN THE SOFTWARE.
    ' u* H, }( S# ?* K
  29. For more information, please refer to
    3 W% u! \2 X1 E( ^! \, o9 p. T, R. d
  30. */
    % |) C- K$ Q" s2 ]) Z
  31. contract MyToken {
    # i! k4 q8 Y+ h& E0 V
  32.     /* Public variables of the token */8 V$ i) T: `4 p7 e
  33.     string public name;/ X& M4 {% r5 t) e4 c2 m; M! H( e  M7 v
  34.     string public symbol;
    ' U. H1 k( P2 U7 g  _
  35.     uint8 public decimals;1 D" B4 I/ @0 C) k3 L  g' {# |
  36.     /* This creates an array with all balances */
    * ?: H% U; A; b' H6 y, B
  37.     mapping (address => uint256) public balanceOf;
    7 V; p' [8 Q6 q. N! q
  38.     /* This generates a public event on the blockchain that will notify clients */0 M9 K6 P2 y' W( K7 d6 N& B& W) g& {
  39.     event Transfer(address indexed from, address indexed to, uint256 value);
    # G6 O$ B" _. s/ n' k: M( c! [* T! R
  40.     /* Initializes contract with initial supply tokens to the creator of the contract */
    # h; u8 I" r0 q. z, C
  41.     function MyToken(uint256 _supply, string _name, string _symbol, uint8 _decimals) {
    : j' o6 s6 f, c- |# _
  42.         /* if supply not given then generate 1 million of the smallest unit of the token */; h* w9 b8 @' |' B* m# Z+ [! F
  43.         if (_supply == 0) _supply = 1000000;
    $ {6 n1 T* Y0 O4 J! E1 \. R
  44.         /* Unless you add other functions these variables will never change */
    8 J# \" R# a& Y
  45.         balanceOf[msg.sender] = _supply;
    " r9 l$ z1 a6 \# S8 U" P! p( `1 h' {
  46.         name = _name;
    / a; O6 f8 O$ h, ~8 ^
  47.         symbol = _symbol;
    2 O- W, k3 s6 ~4 q7 [
  48.         /* If you want a divisible token then add the amount of decimals the base unit has  */5 k4 B' G% H7 y3 Y# g1 o4 w( [
  49.         decimals = _decimals;
    ; y6 o& U0 h1 H" `2 t
  50.     }9 Q2 F* j1 L6 z, j" K7 r+ G
  51.     /* Send coins */
    " M/ \/ \. \/ ~7 }2 T
  52.     function transfer(address _to, uint256 _value) {/ A/ A- z. u, Y9 }
  53.         /* if the sender doenst have enough balance then stop */# W* Z. H- y  [0 _0 ?
  54.         if (balanceOf[msg.sender] / z1 y* j8 G. @  S' o
  55.         if (balanceOf[_to] + _value
    * a  D$ `. E2 `& |
  56.         /* Add and subtract new balances */
    . q+ `) G1 s/ W. f6 L" m/ m
  57.         balanceOf[msg.sender] -= _value;
    2 ]2 `& Q+ Z1 S0 X4 \
  58.         balanceOf[_to] += _value;7 @. L# U) G' L. p) `2 E% r9 D9 a
  59.         /* Notifiy anyone listening that this transfer took place */
    : W# e8 P& ?. @8 I4 p3 h
  60.         Transfer(msg.sender, _to, _value);
    ; Z. Z3 n4 T3 x. }$ G
  61.     }
    $ F* F& g( p8 u+ L) q
  62. }
复制代码

) O- {: k! \1 ^2 \5 k; V/ {如果代码编译成功,在左边将看到Pick contract,如下图:
; S. e' T; ^; b& l* @3 c0 B; L1 J9 T  q. [! F3 y: l0 n
然后,选择MyToken选项,如下图:
0 [3 i8 _9 j; b3 D, b
0 E5 y& T& T2 K( y然后,在右边更改系数,定制自己的货币。supply: 货币总量,name: 货币名字,symbol:货币符号,decimals:货币单位精确到小数点后几位。
2 Z( H6 Q, d% q- z( e7 h& c+ B& w8 i8 u
下图定制的Shaopingcoin(少平币),总量10000个,货币符号:WL,货币单位精确到小数点后八位。根据自己的喜好,填写即可。 SELECT FEE(选择费用),左右拖动横轴选择支付多少手续费(这里就需要用到前面购买到的以太币了),越靠近右边,费用越高,完成合约的速度越快。例如,我选择了0.016131个以太币,大约需要30秒完成合约。完成后,点击DEPLOY(部署)。
$ O( }. ]2 H, |: ?) W& u3 A. n- E# W+ f% a  b" m: p
点击DEPLOY后,自动转到如下界面,输入密码(即创建账户时设置的 密码),点击SEND TRANSACTION(发送交易)。
2 V% j, k$ v- c4 j
8 b2 h" D  Q$ V2 M& Z1 M7 z5 d然后,会跳转到钱包主界面,你会看到下面红色方框中的信息,大约需要3-4分钟的确认时间,完成12个确认就可以了。$ ^* k, f: {* J2 ?7 Q2 y
/ T: |* L6 o+ A' M- S; B
显示新创建的货币。确认完毕,然后再进入CONTRACTS(合约)页面,你将看到刚才创建的货币,例如下图中的ShaopingCoin。3 Q  {$ R. ^; M, K% \5 F/ Y
% G- D% \  t0 P6 m" W7 b2 [/ k) G5 w
点击创建的货币,转到以下界面,复制红色方框中的合约地址,下面的步骤中要用到。
- A2 D! f6 W5 g  t
5 C. ?  V- o0 {( a! x, G再次回到CONTRACTS(合约)页面,点击WATCH TOKEN(查看代币)。
3 u0 j1 Z* F1 @. k- Z/ B# }0 d6 k! l) `1 C
弹出如下界面,将刚才复制的地址粘贴到红色方框中,会看到货币的名字、符号等信息。点击OK。
% `3 ]* k4 M6 R9 h
: M, Y! v8 L& N完成以后,在合约页面就可以看到新创建的货币了。
8 Y# i. e3 b% g( b
1 m: J# Y3 v% n6 o: v发送新创建的新货币进入SEND(发送)页面,在右上角的红色方框中输入收款者的账户地址。在AMOUT中填写发送的数量,在右边的红色方框中选择要发送的货币。左右拖动横轴选择费用,越靠近右边费用越高,处理速度越快。下图表示向0xba960dbedc4c2e0774729b2def16764592ced454地址发送10个ShaopingCoin,交易费用是0.00253625个以太币。点击SEND(发送)。# X, A' M$ O4 b

5 q; L0 R* k3 W* v9 v3 l跳转到如下确认界面,输入密码(即创建账户时设置的密码)。点击SEND TRANSACTION(发送交易)。5 l, O( D$ I! T" |7 V- y9 |
- q7 O4 W8 h+ ]$ F4 @
回到WALLETS(钱包)界面,会看到刚刚发出的记录信息。
6 a+ @! o" |& _& y6 {7 o# \$ a" m
& r& h* W' R- C( Z收款者需要将新创建的币的添加到WATCH Token中才可以看到收到的币。收款者进入CONTRACT(合约)页面,点击WATCH TOKEN。发送者将创建的新币的合约地址通过聊天工具发给收款者。* l, r5 C! ?  ?% R$ q! |* ^5 K9 _7 C

" m5 @$ j4 B- [1 i4 n将发送者新创建币的合约地址复制到红色方框中,点击OK。6 H1 @# F/ u& r( I6 P
3 k' M, t: |2 ^/ _
收款者在WALLETS(钱包)页面将看到收到的币。下图显示收到了10个ShaopingCoin。; D9 K) ^7 b/ p
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

忆神姆原们 初中生
  • 粉丝

    0

  • 关注

    0

  • 主题

    16