Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

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

忆神姆原们
214 0 0
本教程主要参考以太坊官方博客,外加自己的实践。创建代币不需要自己写代码,只要会复制粘贴就可以搞定,这也是以太坊强大之处。下载钱包首先到这里(https://github.com/ethereum/mist/releases)根据自己的操作系统下载相应的钱包。然后,创建一个以太坊账户。 1 j$ p3 f4 R5 h. e$ o

6 P0 P2 P: N7 S5 F2 V6 u. s1 d另外,你还需要一点以太币,大多数合约只需要价值不要1毛钱的以太币。如果你没有以太币,又不想到国外交易所折腾,可以选择用微信扫描下面的二维码直接在微信中购买:" A4 \! r; t- _$ ^; o
" @! v/ r4 C6 I; Y7 P7 y  P2 d
创建账户并购买到1个以太币以后,钱包界面如下,创建新币合约我们要创建的第一个合约是一个代币合约。; X) ]& H  }: ?$ y0 W4 N& |2 q
! u6 F( k" h8 u' d6 u% v5 s: O
以太坊生态系统中的代币可以代表任何可以交易的东西:币(coin)、积分、黄金证券、欠条(IOU)等。3 X2 {/ R/ z  m) u4 e

& t" h2 F7 C- x5 ]: A因为所有的代币都以标准化的方式实现一些基本的特性,这样意味着你自己创建的代币将于以太坊钱包、使用相同标准的任何其它客户端或者合约相兼容。点击红框中的Contract(合约)。) A5 P/ T$ V1 ]: x  n5 y6 O

5 }" c. |# s$ `" ]" X将红框中原有的代码删除,将下面的代码粘贴到里面。0 z  U7 o* E, ~9 }  g* p
  1. /*( n6 q1 k$ q8 M/ Z9 l
  2. This creates a public tradeable fungible token in the Ethereum Blockchain.0 Q, O- \9 {0 m( G+ \
  3. https://github.com/ethereum/wiki/wiki/Standardized_Contract_APIs
    . o' _; t" Q# Z8 _: N& n
  4. Unmodified this will create a cryptoasset with a fixed market cap
    " D" C! ]8 C; O( c& t# X3 ?, K6 P
  5. wholly owned by the contract creator. You can create any function8 x, o5 b4 w5 S* ?5 h, j) C
  6. to change this contract, like allowing specific rules for the issuance,
    / b) J, h+ U+ n2 B2 x; u, y/ j
  7. destruction and freezing of any assets. This contract is intended for
    + V- L' ?! I" D0 D! c0 W0 @* r
  8. educational purposes, you are fully responsible for compliance with
    6 h) \+ f# ?' V# X0 h, N5 c
  9. present or future regulations of finance, communications and the
    8 g3 }% ^' l! q% m. ~4 r
  10. universal rights of digital beings." D, Z4 h3 S+ E" I$ r
  11. Anyone is free to copy, modify, publish, use, compile, sell, or
    % w: u- G' e# y# D: {$ G0 K
  12. distribute this software, either in source code form or as a compiled: y8 r8 N( V6 Z$ G
  13. binary, for any purpose, commercial or non-commercial, and by any
    3 _2 ~5 W, i/ y0 O1 ]  t9 k
  14. means.( V7 E8 `/ v& B+ \5 @, I  o
  15. In jurisdictions that recognize copyright laws, the author or authors" B- `" ]. m2 t; R8 i2 U2 k( X* ~
  16. of this software dedicate any and all copyright interest in the
    1 ]- `. U- ?! J% J) M) }
  17. software to the public domain. We make this dedication for the benefit
    1 _/ f% q, t: z6 u( p) d* M. W
  18. of the public at large and to the detriment of our heirs and
    0 e" e2 G+ M9 n* e
  19. successors. We intend this dedication to be an overt act of
    5 L8 ]; _0 n8 i. s0 l, i
  20. relinquishment in perpetuity of all present and future rights to this
    + p; V8 W0 _. X
  21. software under copyright law.8 y7 v' V( E4 a: `( Z2 T5 B
  22. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,0 L! s) m, m% R, b5 \# Q
  23. EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF0 @) x# _, _# Z) Q) }9 A" y
  24. MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
    & @- C0 b* S; N3 I6 B: ^0 Y
  25. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
    + F, z* Y7 o; @1 W: J1 A
  26. OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
    5 |; C: N: B2 o5 e
  27. ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR; h6 {  u. V: K) o# k8 I
  28. OTHER DEALINGS IN THE SOFTWARE.! W( M, a* C- i8 v( ?$ O: [0 G% O# w
  29. For more information, please refer to
    5 _( v- z2 s( T0 F& W4 H6 a
  30. */
    % W1 \7 V4 i$ M' \  s" H
  31. contract MyToken {0 H9 w/ |- J% C9 k; [, \
  32.     /* Public variables of the token */
    1 K, ], j& ?1 f! l6 Z) J& s
  33.     string public name;
    1 a! O! n' n9 P3 q) i) G+ b: i- Y
  34.     string public symbol;0 @+ |. J' y$ K# d- _
  35.     uint8 public decimals;5 d% q! a- q: W5 G9 l+ y1 A$ Z
  36.     /* This creates an array with all balances */4 ?; \( R0 w* ?7 b3 D' U: z. ?
  37.     mapping (address => uint256) public balanceOf;( b: A! q( Y9 }9 Y6 s+ i0 d6 p. n5 p
  38.     /* This generates a public event on the blockchain that will notify clients */- J$ p+ i: }, T3 e
  39.     event Transfer(address indexed from, address indexed to, uint256 value);
    ( {3 V* j7 j- v2 H! |3 }
  40.     /* Initializes contract with initial supply tokens to the creator of the contract */
    4 C4 T  J& C$ j
  41.     function MyToken(uint256 _supply, string _name, string _symbol, uint8 _decimals) {
    / B* h+ X# v/ \, U6 U
  42.         /* if supply not given then generate 1 million of the smallest unit of the token */
    , Y+ \% g6 }. E2 Z$ G
  43.         if (_supply == 0) _supply = 1000000;
    * k% O. \" R  i* y
  44.         /* Unless you add other functions these variables will never change */9 p4 E5 j: x% z4 o9 `/ e
  45.         balanceOf[msg.sender] = _supply;$ m/ V% Q* @& Q' @/ k$ T# x
  46.         name = _name;, X8 m# f4 Y& K1 A* d
  47.         symbol = _symbol;+ r; Q- b3 A' ?2 ?1 L  X
  48.         /* If you want a divisible token then add the amount of decimals the base unit has  */2 L7 o6 U: I  Z! ?9 b
  49.         decimals = _decimals;
    3 \3 Z# ^) S4 O9 V; E2 {
  50.     }0 e' T+ n  ?: }8 i; x8 R4 n
  51.     /* Send coins */9 a6 Z% Q9 B4 m# c: m
  52.     function transfer(address _to, uint256 _value) {
    # c- d5 h7 x& d3 x9 A! U
  53.         /* if the sender doenst have enough balance then stop */" y% j1 m  C# h) _5 b( J, ^
  54.         if (balanceOf[msg.sender] 2 k4 z& ?$ P6 J4 r& F$ Q$ f* I
  55.         if (balanceOf[_to] + _value
    ' E( c9 e' [" `# Z
  56.         /* Add and subtract new balances */; w8 E- V) @' N1 G4 m4 R) @, Y
  57.         balanceOf[msg.sender] -= _value;
    ! u/ v4 d! I$ X1 }8 Z% B- j+ Z5 v7 S9 T
  58.         balanceOf[_to] += _value;
    " M9 e6 O/ }8 B2 D
  59.         /* Notifiy anyone listening that this transfer took place */
    , h4 U7 q  r6 a. X
  60.         Transfer(msg.sender, _to, _value);
    " y2 g2 L( q5 A+ W
  61.     }9 p2 [: [' {' X) _* r; J' W. q
  62. }
复制代码

6 @' Q( T# V/ S& W. {如果代码编译成功,在左边将看到Pick contract,如下图:4 w1 `+ i& L9 c1 I& E
+ _+ P3 T3 y4 E* |* q5 R) S. a
然后,选择MyToken选项,如下图:
, q1 D! h% ~: B
. O' z1 o$ P: N0 \, p4 d然后,在右边更改系数,定制自己的货币。supply: 货币总量,name: 货币名字,symbol:货币符号,decimals:货币单位精确到小数点后几位。
! d) w! `. X: y
) n9 U6 G# k9 `) o) W7 Q) j# @下图定制的Shaopingcoin(少平币),总量10000个,货币符号:WL,货币单位精确到小数点后八位。根据自己的喜好,填写即可。 SELECT FEE(选择费用),左右拖动横轴选择支付多少手续费(这里就需要用到前面购买到的以太币了),越靠近右边,费用越高,完成合约的速度越快。例如,我选择了0.016131个以太币,大约需要30秒完成合约。完成后,点击DEPLOY(部署)。/ W' q% }9 f( T6 r, w8 u
1 m: k3 K* Q/ T4 @+ z* n2 H& Y
点击DEPLOY后,自动转到如下界面,输入密码(即创建账户时设置的 密码),点击SEND TRANSACTION(发送交易)。
3 S1 M4 P: [2 m
! `; l/ [1 @2 x2 Q然后,会跳转到钱包主界面,你会看到下面红色方框中的信息,大约需要3-4分钟的确认时间,完成12个确认就可以了。6 y: ~9 [3 F  e: |5 t

# Y/ S' H1 q5 C" b显示新创建的货币。确认完毕,然后再进入CONTRACTS(合约)页面,你将看到刚才创建的货币,例如下图中的ShaopingCoin。; C; P. G. R; k. a5 w. {
! Z& o7 M) t* {# E' t/ Z7 g0 |
点击创建的货币,转到以下界面,复制红色方框中的合约地址,下面的步骤中要用到。7 K, i- G& ]& x

: i: b+ O  T) o6 ^; c* S再次回到CONTRACTS(合约)页面,点击WATCH TOKEN(查看代币)。( ?9 ~' n" l9 o1 g

4 X' e+ X5 ^7 O; O7 z! K5 b弹出如下界面,将刚才复制的地址粘贴到红色方框中,会看到货币的名字、符号等信息。点击OK。
4 ~- R1 q7 I# a: U+ w9 U( b
; ]* o* [* O* y' @) b* G3 ?完成以后,在合约页面就可以看到新创建的货币了。) b; R6 [5 D; N
/ e7 ~: ?" k1 L' c
发送新创建的新货币进入SEND(发送)页面,在右上角的红色方框中输入收款者的账户地址。在AMOUT中填写发送的数量,在右边的红色方框中选择要发送的货币。左右拖动横轴选择费用,越靠近右边费用越高,处理速度越快。下图表示向0xba960dbedc4c2e0774729b2def16764592ced454地址发送10个ShaopingCoin,交易费用是0.00253625个以太币。点击SEND(发送)。
- i' x9 z; Z7 h( H' v) b) D+ M4 @, u/ [( k, I, w" B3 h/ a" I
跳转到如下确认界面,输入密码(即创建账户时设置的密码)。点击SEND TRANSACTION(发送交易)。5 T: q% G; I4 f$ o, }6 `
+ x2 G( [* h) w. v, v; \8 ~
回到WALLETS(钱包)界面,会看到刚刚发出的记录信息。
5 d. |* p5 k- x# t6 H" O3 a6 z, `9 Z/ a1 {2 q, Q9 l
收款者需要将新创建的币的添加到WATCH Token中才可以看到收到的币。收款者进入CONTRACT(合约)页面,点击WATCH TOKEN。发送者将创建的新币的合约地址通过聊天工具发给收款者。. L6 f, W, K) d9 X9 h$ E3 z1 H2 f
5 a. B- C; T0 g" X; t, j" o
将发送者新创建币的合约地址复制到红色方框中,点击OK。
. M* `" l. }1 x
' }4 z9 d* |$ p! J: `收款者在WALLETS(钱包)页面将看到收到的币。下图显示收到了10个ShaopingCoin。2 `- s6 G1 w  t
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

忆神姆原们 初中生
  • 粉丝

    0

  • 关注

    0

  • 主题

    16