Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

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

忆神姆原们
128 0 0
本教程主要参考以太坊官方博客,外加自己的实践。创建代币不需要自己写代码,只要会复制粘贴就可以搞定,这也是以太坊强大之处。下载钱包首先到这里(https://github.com/ethereum/mist/releases)根据自己的操作系统下载相应的钱包。然后,创建一个以太坊账户。
' |& h, j: k% f; x7 v: G2 M+ A& ?( ?- d! m3 R
另外,你还需要一点以太币,大多数合约只需要价值不要1毛钱的以太币。如果你没有以太币,又不想到国外交易所折腾,可以选择用微信扫描下面的二维码直接在微信中购买:
4 M9 }; Z5 @# X% v9 I" C- r! W& |
) @8 {. k) D/ O+ P$ f  [8 `创建账户并购买到1个以太币以后,钱包界面如下,创建新币合约我们要创建的第一个合约是一个代币合约。
) [( b- g+ r5 d8 |3 @3 m7 r8 I7 i0 R) s7 n! ~
以太坊生态系统中的代币可以代表任何可以交易的东西:币(coin)、积分、黄金证券、欠条(IOU)等。
7 h( p6 `% n1 l( T
: g- T' b: ]$ p$ [, [! O' T& B因为所有的代币都以标准化的方式实现一些基本的特性,这样意味着你自己创建的代币将于以太坊钱包、使用相同标准的任何其它客户端或者合约相兼容。点击红框中的Contract(合约)。
: t& z1 k, A6 _) h4 Z8 w, ?8 l8 ]2 p
将红框中原有的代码删除,将下面的代码粘贴到里面。
: R5 Q$ j- G* ?9 ~- v* c
  1. /*6 d. u5 N  d/ u( {  P
  2. This creates a public tradeable fungible token in the Ethereum Blockchain.( b, S& \$ P2 _
  3. https://github.com/ethereum/wiki/wiki/Standardized_Contract_APIs6 o' T: z, f8 t( ?! k
  4. Unmodified this will create a cryptoasset with a fixed market cap/ u5 [2 O' O, |' C/ x, C5 |' C1 p+ E9 ^
  5. wholly owned by the contract creator. You can create any function
    3 ?+ m' O! j3 d
  6. to change this contract, like allowing specific rules for the issuance,
    + g5 n% `! j! t( ^2 m( u
  7. destruction and freezing of any assets. This contract is intended for
    * f9 ?" t' W5 _6 t3 J
  8. educational purposes, you are fully responsible for compliance with
    4 D! I3 i/ {: f2 X, b: S
  9. present or future regulations of finance, communications and the' M, X: t7 f# t5 E0 e" a
  10. universal rights of digital beings.
    ' R  J! o7 G; ?+ H2 |3 R
  11. Anyone is free to copy, modify, publish, use, compile, sell, or, W2 G. Q# u+ ]/ ~! m
  12. distribute this software, either in source code form or as a compiled$ R+ c  z: U$ D0 X% U
  13. binary, for any purpose, commercial or non-commercial, and by any
    - Z* v' D, F1 w9 z7 _5 s2 r3 f* f
  14. means.0 L0 f. E1 o: K- P! T
  15. In jurisdictions that recognize copyright laws, the author or authors9 z% w2 C# k+ C
  16. of this software dedicate any and all copyright interest in the
    : m, @3 y- Q3 B( ?+ B% c' s
  17. software to the public domain. We make this dedication for the benefit
    # }' O+ H$ I% ~0 @+ |
  18. of the public at large and to the detriment of our heirs and
    9 s: r. s) i4 Z* V
  19. successors. We intend this dedication to be an overt act of/ v8 z, @" r4 h9 a7 W9 {
  20. relinquishment in perpetuity of all present and future rights to this
    1 a' o) ^' _9 S% I
  21. software under copyright law.
    & u" k+ o3 x4 v7 o3 l
  22. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,  z& I: Z* o- ]$ Y* C' G
  23. EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    + v& P+ p! q5 J$ ^. {& D! \
  24. MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
    & J4 |( X) E: v9 G
  25. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
    8 a! s/ t& e5 X& V& w( @- n1 A1 v
  26. OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,2 ~+ e% H' j3 W- _+ `, S+ O
  27. ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
    % W+ v* U2 q2 B
  28. OTHER DEALINGS IN THE SOFTWARE.
    % P. j2 f8 Y& C1 q
  29. For more information, please refer to & R5 X1 B9 A, `. P3 d8 \( K8 C
  30. */
    + D8 X1 [+ S, t' i8 K' H6 n8 M
  31. contract MyToken {
    , [& u- Y0 w6 [1 O
  32.     /* Public variables of the token */( ^) L4 O+ \+ u; d$ |
  33.     string public name;
    & g; B# j0 Q* G4 s
  34.     string public symbol;
    1 i1 v5 P7 N, e2 n3 U: R
  35.     uint8 public decimals;
    0 R7 R& s  g- H8 @0 y
  36.     /* This creates an array with all balances */7 }5 d* @5 C9 |" t
  37.     mapping (address => uint256) public balanceOf;
    - J: W& }. c. G& l+ b/ ]; a4 w, r
  38.     /* This generates a public event on the blockchain that will notify clients */3 w9 D! F! `# X8 N' `
  39.     event Transfer(address indexed from, address indexed to, uint256 value);$ j2 b& L6 R5 V/ ~1 E* c
  40.     /* Initializes contract with initial supply tokens to the creator of the contract */
    ! X& [7 q4 o# ~6 W3 M
  41.     function MyToken(uint256 _supply, string _name, string _symbol, uint8 _decimals) {! q" L- c# [3 D* f+ |
  42.         /* if supply not given then generate 1 million of the smallest unit of the token */0 e+ i0 P" l1 U$ Q' n% h' `6 K: }. |  T
  43.         if (_supply == 0) _supply = 1000000;$ X9 [* i! U# J( `
  44.         /* Unless you add other functions these variables will never change */9 O& N5 |" U% M- Z0 i! C+ {. Y7 I
  45.         balanceOf[msg.sender] = _supply;
    ' G8 p$ N  Q3 E$ w
  46.         name = _name;5 o) {. Z; O6 d8 w! b& m
  47.         symbol = _symbol;1 W+ J& P, M1 ?, t/ C8 ]
  48.         /* If you want a divisible token then add the amount of decimals the base unit has  */% u- z0 U7 z8 V' z
  49.         decimals = _decimals;) q- D& i, b) M0 \
  50.     }* \  |* K8 i1 A% t6 D( {; S- w+ ~
  51.     /* Send coins */
    " r$ k7 ], x% o0 u) ~; d6 P( Q
  52.     function transfer(address _to, uint256 _value) {6 v8 F, p' _6 o& {3 }
  53.         /* if the sender doenst have enough balance then stop */% E$ ]+ J% M8 R; N( ~) T, q4 u
  54.         if (balanceOf[msg.sender]
    6 [, C2 h. r# K* t0 t2 n
  55.         if (balanceOf[_to] + _value ) s1 J: l4 ^( H: c; T" n4 `/ b" z
  56.         /* Add and subtract new balances */
    - Y# Z8 u6 L. y" \
  57.         balanceOf[msg.sender] -= _value;
    5 {+ W4 ^" _5 Q. U& e4 w% S8 [
  58.         balanceOf[_to] += _value;
    / p- f1 \3 A- d7 J' B2 C+ @9 [
  59.         /* Notifiy anyone listening that this transfer took place */
    ) V: i. }2 v. O. j2 C" v/ ?
  60.         Transfer(msg.sender, _to, _value);6 R" d* u  _6 b+ k2 y7 N5 Z; H
  61.     }
    , f. m4 I* }  ], Z' B+ V
  62. }
复制代码
. F# \* P: S" w% ]3 t, V- Z
如果代码编译成功,在左边将看到Pick contract,如下图:
! s% o+ g) p' U* O6 l2 G; ^
& z! T9 i5 ^$ i6 j1 V然后,选择MyToken选项,如下图:) a- Q( p6 n, z- T/ b7 `* E8 p- |

# B9 P9 d( k' ?, d! E/ i$ Z  T然后,在右边更改系数,定制自己的货币。supply: 货币总量,name: 货币名字,symbol:货币符号,decimals:货币单位精确到小数点后几位。
+ e+ m% A7 X! H- w0 y8 a% \& `# T) ^& o8 t3 ^2 i  \
下图定制的Shaopingcoin(少平币),总量10000个,货币符号:WL,货币单位精确到小数点后八位。根据自己的喜好,填写即可。 SELECT FEE(选择费用),左右拖动横轴选择支付多少手续费(这里就需要用到前面购买到的以太币了),越靠近右边,费用越高,完成合约的速度越快。例如,我选择了0.016131个以太币,大约需要30秒完成合约。完成后,点击DEPLOY(部署)。
  ]3 ?$ g2 x  \( B. v8 ^: i9 M( N4 d' F% P5 W  b6 y
点击DEPLOY后,自动转到如下界面,输入密码(即创建账户时设置的 密码),点击SEND TRANSACTION(发送交易)。0 P' A0 j  o: d/ B% o
% D* L( m; q, L* [
然后,会跳转到钱包主界面,你会看到下面红色方框中的信息,大约需要3-4分钟的确认时间,完成12个确认就可以了。
& d  C0 N9 u  ?6 V1 I1 ]
; w6 Z) i) S+ v2 o' ?; \1 W' F显示新创建的货币。确认完毕,然后再进入CONTRACTS(合约)页面,你将看到刚才创建的货币,例如下图中的ShaopingCoin。" a6 b5 K( V3 b
; g) t% j# D- d" g8 {3 |
点击创建的货币,转到以下界面,复制红色方框中的合约地址,下面的步骤中要用到。
' H8 X/ L! l+ Q3 Q
+ X1 v  U9 o- V再次回到CONTRACTS(合约)页面,点击WATCH TOKEN(查看代币)。
1 F0 ^1 C$ D- U9 }; _3 P% @( r* h/ J
弹出如下界面,将刚才复制的地址粘贴到红色方框中,会看到货币的名字、符号等信息。点击OK。
  ]7 e0 C+ `; r1 k- O- e5 o1 o
5 F# W) C9 A0 J, q完成以后,在合约页面就可以看到新创建的货币了。, L( `9 a/ M. E/ }- U
( A7 W! m4 T) k' ^. w
发送新创建的新货币进入SEND(发送)页面,在右上角的红色方框中输入收款者的账户地址。在AMOUT中填写发送的数量,在右边的红色方框中选择要发送的货币。左右拖动横轴选择费用,越靠近右边费用越高,处理速度越快。下图表示向0xba960dbedc4c2e0774729b2def16764592ced454地址发送10个ShaopingCoin,交易费用是0.00253625个以太币。点击SEND(发送)。
, e$ M) h9 N8 k3 O" v& I9 q% F( G& n% n' _  C5 d& Z# z4 t
跳转到如下确认界面,输入密码(即创建账户时设置的密码)。点击SEND TRANSACTION(发送交易)。
* O+ X+ Z$ v/ F) Y) q: P
- y! L. l0 U# X( N: u9 R, Z回到WALLETS(钱包)界面,会看到刚刚发出的记录信息。
2 F) S' b; u; F1 g0 i! a: i* u
5 g6 I2 X- |0 Y收款者需要将新创建的币的添加到WATCH Token中才可以看到收到的币。收款者进入CONTRACT(合约)页面,点击WATCH TOKEN。发送者将创建的新币的合约地址通过聊天工具发给收款者。
/ M0 r9 K7 _/ \' [2 F, n1 g" s6 `/ Z4 J& ?* W
将发送者新创建币的合约地址复制到红色方框中,点击OK。1 `0 _7 e9 F7 y# q  r

% `7 r/ H, F) [; U9 X* x收款者在WALLETS(钱包)页面将看到收到的币。下图显示收到了10个ShaopingCoin。
8 Q, |/ v0 P' s" ]+ i% ^9 L/ C
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

忆神姆原们 初中生
  • 粉丝

    0

  • 关注

    0

  • 主题

    16