Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

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

忆神姆原们
227 0 0
本教程主要参考以太坊官方博客,外加自己的实践。创建代币不需要自己写代码,只要会复制粘贴就可以搞定,这也是以太坊强大之处。下载钱包首先到这里(https://github.com/ethereum/mist/releases)根据自己的操作系统下载相应的钱包。然后,创建一个以太坊账户。
" h/ ^! G* G% n$ s7 |  m- d$ v
, U' j, L: {* l! M2 E4 a另外,你还需要一点以太币,大多数合约只需要价值不要1毛钱的以太币。如果你没有以太币,又不想到国外交易所折腾,可以选择用微信扫描下面的二维码直接在微信中购买:! P4 @6 T& ^3 I2 f" V, r) J

; Q, ?3 C* m2 R% Z& E5 K4 O/ P8 {创建账户并购买到1个以太币以后,钱包界面如下,创建新币合约我们要创建的第一个合约是一个代币合约。. M# X$ _: r9 \
) q0 ?$ Y/ K% h* R) D5 }5 j
以太坊生态系统中的代币可以代表任何可以交易的东西:币(coin)、积分、黄金证券、欠条(IOU)等。+ b2 I: N" N1 v/ ?0 U

' L  y' e9 b+ S; [因为所有的代币都以标准化的方式实现一些基本的特性,这样意味着你自己创建的代币将于以太坊钱包、使用相同标准的任何其它客户端或者合约相兼容。点击红框中的Contract(合约)。2 D2 P0 \; v4 {* b7 }( b, w" _3 [. C4 e. J
/ G' P6 y, T- I1 f8 W& W, @( r8 ]
将红框中原有的代码删除,将下面的代码粘贴到里面。
8 y  f2 I2 J, I4 w- P
  1. /*) V- {$ c0 a: Z# V
  2. This creates a public tradeable fungible token in the Ethereum Blockchain.
    ! s% p3 e' f% ]) d5 V6 }+ Q" C% Y2 k
  3. https://github.com/ethereum/wiki/wiki/Standardized_Contract_APIs" W; k) w# {1 N9 X
  4. Unmodified this will create a cryptoasset with a fixed market cap8 _1 |+ c" f, `/ W# P1 K
  5. wholly owned by the contract creator. You can create any function
    7 u, e5 p5 f2 L# v
  6. to change this contract, like allowing specific rules for the issuance,
    ! z  o$ N% }3 w
  7. destruction and freezing of any assets. This contract is intended for
      X! ?' S& e& U3 B* F7 a
  8. educational purposes, you are fully responsible for compliance with: Z4 @1 u) b' \9 N  T- d
  9. present or future regulations of finance, communications and the
    2 x5 b9 X) [6 z$ [) n
  10. universal rights of digital beings.
    2 d: r9 `. D( N
  11. Anyone is free to copy, modify, publish, use, compile, sell, or
    * P7 a3 K& K5 P/ e6 r
  12. distribute this software, either in source code form or as a compiled) {; `1 b! @, Q$ n& [/ \0 V$ [
  13. binary, for any purpose, commercial or non-commercial, and by any
    $ C, J7 `# c) g( r) n
  14. means.
      [" G; @! @( @5 e
  15. In jurisdictions that recognize copyright laws, the author or authors
    % l, x' ~/ h8 M$ h  S4 ]) V, f3 x% G+ Z
  16. of this software dedicate any and all copyright interest in the
    % b# u2 Q& E/ o$ J4 Y" E
  17. software to the public domain. We make this dedication for the benefit$ w, Y5 v8 l% @1 g& t, [
  18. of the public at large and to the detriment of our heirs and9 O/ _9 g" f- `3 z
  19. successors. We intend this dedication to be an overt act of, v; @) T9 {2 z4 h0 L3 Q* ]; _
  20. relinquishment in perpetuity of all present and future rights to this* J# ~# U9 L' I" E' h
  21. software under copyright law.) |: e6 n) X0 H4 Z
  22. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,1 [& {- Y; N" A1 K( x4 ]8 y
  23. EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    0 W+ U7 K% Y1 h. P& U
  24. MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.! p+ f9 @1 O  J  p
  25. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
    & T  I' R9 K, x. X/ Y( I% P
  26. OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
    + _! y1 |4 m/ @) d, z, g
  27. ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR9 w0 I$ T# h6 @$ T& z" b
  28. OTHER DEALINGS IN THE SOFTWARE.0 h. |! \1 m7 Q. [6 z. ]
  29. For more information, please refer to
    ( I* x' W9 g5 O( J. n9 Q  N
  30. */8 d* y) i8 {9 W: p# Q) [) @: _+ S
  31. contract MyToken {& F& c2 o& d3 d9 |7 W) w9 d* ]
  32.     /* Public variables of the token */9 }- v! a( [/ I; o4 k$ W4 n* B
  33.     string public name;  p% Z0 M; ]3 S; W) p
  34.     string public symbol;: L1 b: d; D" i! B
  35.     uint8 public decimals;5 X5 R/ u+ p1 j, [6 `
  36.     /* This creates an array with all balances */7 O/ T7 \5 {: O. K8 c
  37.     mapping (address => uint256) public balanceOf;
    2 I6 b6 c$ {3 j% {" L
  38.     /* This generates a public event on the blockchain that will notify clients */
    1 r" |+ G6 ^# R8 O, O/ Y2 g
  39.     event Transfer(address indexed from, address indexed to, uint256 value);
    ; H( Y5 r, v' E; N
  40.     /* Initializes contract with initial supply tokens to the creator of the contract */
    & C( h; g8 @0 F. i# z
  41.     function MyToken(uint256 _supply, string _name, string _symbol, uint8 _decimals) {
    - S: h% e9 c* z9 l
  42.         /* if supply not given then generate 1 million of the smallest unit of the token */
    ( ~/ e9 f* d7 e6 ~$ Z2 u) `& h& A5 A
  43.         if (_supply == 0) _supply = 1000000;
    - t! w6 B7 i- _, V0 H, }  Z
  44.         /* Unless you add other functions these variables will never change */
    / a: t* E- j9 Q) u* P9 G1 \
  45.         balanceOf[msg.sender] = _supply;
    , \4 m7 W0 ]4 ^0 t
  46.         name = _name;
    & R4 I6 M" |4 }
  47.         symbol = _symbol;
    6 F0 @5 V4 }* ~
  48.         /* If you want a divisible token then add the amount of decimals the base unit has  */" q9 u: k6 F( U* i- `! q
  49.         decimals = _decimals;. E. J1 Y# p! p
  50.     }
    ( F3 T, p  x# e) g7 V
  51.     /* Send coins */
    6 m  X1 q# @1 _) R1 K1 p
  52.     function transfer(address _to, uint256 _value) {( L4 ?! V2 S; J2 D5 h$ {& B
  53.         /* if the sender doenst have enough balance then stop */
    / h6 h) X" ]3 |+ a
  54.         if (balanceOf[msg.sender] 5 B( A0 N' i( P5 [, e. }+ ^
  55.         if (balanceOf[_to] + _value
    1 J: t3 [" ]7 p+ j
  56.         /* Add and subtract new balances */
    + W" z1 I  B/ y: ]8 R' V) V3 d
  57.         balanceOf[msg.sender] -= _value;
    . W# F9 k0 _0 a2 y5 Y
  58.         balanceOf[_to] += _value;/ p: G: Z- Y0 [
  59.         /* Notifiy anyone listening that this transfer took place */7 }. }+ \& K9 j+ R( b
  60.         Transfer(msg.sender, _to, _value);
    4 `7 {$ w: p( ~6 ^4 m
  61.     }8 j6 B0 Y! i" T- I  ^& D- C7 m
  62. }
复制代码

9 z* A* {  c( |9 h如果代码编译成功,在左边将看到Pick contract,如下图:8 z2 U0 i1 s/ S& D, |

3 _2 h. D! |6 T" K5 h3 {然后,选择MyToken选项,如下图:  b! e, d' \! y8 O  \, f
! Y- i  T' z) Y: c3 D8 ?8 O
然后,在右边更改系数,定制自己的货币。supply: 货币总量,name: 货币名字,symbol:货币符号,decimals:货币单位精确到小数点后几位。' p4 i" i% }+ J4 V' C

5 F4 n: g! A3 b! G: Y5 `5 i下图定制的Shaopingcoin(少平币),总量10000个,货币符号:WL,货币单位精确到小数点后八位。根据自己的喜好,填写即可。 SELECT FEE(选择费用),左右拖动横轴选择支付多少手续费(这里就需要用到前面购买到的以太币了),越靠近右边,费用越高,完成合约的速度越快。例如,我选择了0.016131个以太币,大约需要30秒完成合约。完成后,点击DEPLOY(部署)。0 D& \' M. _2 e& b# L, Y

) D" Z' \- A- Z0 M# G5 U点击DEPLOY后,自动转到如下界面,输入密码(即创建账户时设置的 密码),点击SEND TRANSACTION(发送交易)。
# X  ]* T1 ~% ~9 q8 v6 Q6 v! t" p2 |
然后,会跳转到钱包主界面,你会看到下面红色方框中的信息,大约需要3-4分钟的确认时间,完成12个确认就可以了。9 M+ a6 O5 L, f) d
/ W; C/ ]1 Z4 \: S/ }( c
显示新创建的货币。确认完毕,然后再进入CONTRACTS(合约)页面,你将看到刚才创建的货币,例如下图中的ShaopingCoin。- X. o/ ?4 t  c0 w9 V9 x
# l/ g% L: o) k7 B0 a
点击创建的货币,转到以下界面,复制红色方框中的合约地址,下面的步骤中要用到。
& q/ {) q+ n' c* o! u. J
; m& A3 ~! t8 x; Z7 r再次回到CONTRACTS(合约)页面,点击WATCH TOKEN(查看代币)。
7 w- R4 _" f6 B* M- m/ h8 v' s
; o  o3 G6 ^6 V9 f/ I: |! v, A弹出如下界面,将刚才复制的地址粘贴到红色方框中,会看到货币的名字、符号等信息。点击OK。
+ Q- y6 Q) Z+ U/ c0 q2 }& c1 G, b
完成以后,在合约页面就可以看到新创建的货币了。
+ i' L) |' Y, x- q* h# c- p; U5 Q5 u, s( i7 {
发送新创建的新货币进入SEND(发送)页面,在右上角的红色方框中输入收款者的账户地址。在AMOUT中填写发送的数量,在右边的红色方框中选择要发送的货币。左右拖动横轴选择费用,越靠近右边费用越高,处理速度越快。下图表示向0xba960dbedc4c2e0774729b2def16764592ced454地址发送10个ShaopingCoin,交易费用是0.00253625个以太币。点击SEND(发送)。
: l3 F0 {7 f6 S6 b
8 ^4 `* l# D: r$ e1 h5 P# Q  ^跳转到如下确认界面,输入密码(即创建账户时设置的密码)。点击SEND TRANSACTION(发送交易)。
$ c% K, M8 q3 m8 p0 t1 o* Q& ^0 c/ _$ {1 u
回到WALLETS(钱包)界面,会看到刚刚发出的记录信息。
" G. N- d' Y# ~9 [& P; _7 J
( a% ?" d  g7 M/ l' \收款者需要将新创建的币的添加到WATCH Token中才可以看到收到的币。收款者进入CONTRACT(合约)页面,点击WATCH TOKEN。发送者将创建的新币的合约地址通过聊天工具发给收款者。
9 d2 r1 c3 a: ]6 [9 h0 t, P
# r. b+ D9 q0 ~将发送者新创建币的合约地址复制到红色方框中,点击OK。
3 ^' ?* y7 T2 t' l4 [, E2 p
8 p; |/ U, `; N1 `收款者在WALLETS(钱包)页面将看到收到的币。下图显示收到了10个ShaopingCoin。6 V1 H6 X. {( U4 l+ b5 w
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

忆神姆原们 初中生
  • 粉丝

    0

  • 关注

    0

  • 主题

    16