«   2021/10   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
Tags
more
Archives
Today
240
Total
1,919,938
관리 메뉴

올해는 머신러닝이다.

[DAPP] ERC20 토큰을 만들어서 배포까지 본문

스터디/DAPP

[DAPP] ERC20 토큰을 만들어서 배포까지

리엑티브한 행복한 수지아빠 2018. 3. 21. 21:06

광고한번 눌러주시면 크게 힘이 됩니다. 


이번 포스팅은 제 딸들 코인인 수지토큰 을 발행해보겠습니다.

우선 토큰과 코인은 차이가 있습니다. 






그럼 시작해보겠습니다. 


우선 결과물은 다음과 같습니다.

이더리움에 올릴수 있는 토큰은 ERC20 규격으로 만들수 있다. 이 토큰을 가지고 ICO에 올려서 서로간의 거래를 할 수 있습니다. 

그럼 시작해보자. 

ERC20 위키바로가기

규격 인터페이스 형태는 다음과 같다. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
contract ERC20Interface {
    //총 갯수
    function totalSupply() public constant returns (uint);
    //주어진 토큰오너에 대한 잔액조회
    function balanceOf(address tokenOwner) public constant returns (uint balance);
    //소유자가 승인 할 수 는 토큰 양을 반환합니다. 
    function allowance(address tokenOwner, address spender) public constant returns (uint remaining);
    //to 에게 토큰을 전송한다. 
    function transfer(address to, uint tokens) public returns (bool success);
    //트큰을 원래주인으로부터 다른사람에게 전송함을 승인한다. 
    function approve(address spender, uint tokens) public returns (bool success);
    //from -> to 을 토큰을 전송 : 성공/실패
    function transferFrom(address from, address to, uint tokens) public returns (bool success);
 
    //전송 이벤트
    event Transfer(address indexed from, address indexed to, uint tokens);
    //승인 이벤트
    event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
}
cs

필요한 지식은 다음과 같다.. 

  • DAPP
  • Truffle
  • Node
  • MetaMask
  • MyEtherWallet
  • Javascript

여기에선 Truffle 이더리움 프레임워크를 이용해서 쉽게 만들어볼것이다. 

우선 설치를 해보자. 

npm install -g truffle

그리고 원하는 위치에 폴더를 만들고 초기화를 진행한다. 

1
2
3
mkdir sugi-coin
cd sugi-coin
truffle init
cs



처음 트리 구조는 위와 같다.

그리고 오픈재플린( OpenZepplin ) 을 라이버러리를 설치를 해보자. 

유용한 계약들을 손쉽게 쓸수 있도록 제공해주는 DAPP 개발시 필수 라이버러리이다. 

토큰 규약 말고도 여러가지가 미리 포함되어 있다. 

1
npm install zeppelin-solidity -save
cs

그럼 contract 를 작성해보자.

contract 폴더내에 sujicoin.sol 을 작성한다. StandardToken 을 상속받는다. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
pragma solidity ^0.4.18;
import "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol";
 
contract Sujicoin is StandardToken {
    string public name = "Sujicoin"
    string public symbol = "SUJI"//통화단위
    uint public decimals = 2//자리수
    uint public INITIAL_SUPPLY = 10000 * (10 ** decimals); //초기 공급량
 
    //생성자
    function Sujicoin() public {
        balances[msg.sender] = INITIAL_SUPPLY;
    }
}
cs

그리고 배포를 위해 migrations 폴더에 파일을 새로 만든다. 

1
2_deploy_sujicoin.js
cs

소스는 아래와 같이 작성한다.

1
2
3
4
5
var SujiCoin = artifacts.require("./Sujicoin.sol");
 
module.exports = function(deployer) {
    deployer.deploy(SujiCoin);
};
cs

그리고 루트 폴더에 보면 truffle.js 파일이 있을 것이다. 아래와 같은 소스를 넣어준다. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
require('dotenv').config();
const Web3 = require("web3");
const web3 = new Web3();
const WalletProvider = require("truffle-wallet-provider");
const Wallet = require('ethereumjs-wallet');

var rinkebyPrivateKey = new Buffer("private key", "hex")
var rinkebyWallet = Wallet.fromPrivateKey(rinkebyPrivateKey);
var rinkebyProvider = new WalletProvider(rinkebyWallet, "https://rinkeby.infura.io/");


module.exports = {
networks: {
development: {
host: "localhost",
port: 8545,
network_id: "*" // Match any network id
},
rinkeby: {
provider: rinkebyProvider,
gas: 4600000,
gasPrice: web3.toWei("20", "gwei"),
network_id: "3",
}
}
};
cs


[ RINKEBY_PRIVATE_KEY ] 에 지갑에서 private key를 넣어주자. 

여기에서는 Metamask 를 이용한다.

Private key 추출은 Metamask 를 통해서 할수 있다. 



서버는 Rinkeby 테스트 서버를 이용한다. 

그리고 배포를 진행해본다. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
>> truffle deploy --network rinkeby
Compiling .\contracts\SujiCoin.sol...
Compiling zeppelin-solidity/contracts/token/ERC20/StandardToken.sol...
Compiling zeppelin-solidity\contracts\math\SafeMath.sol...
Compiling zeppelin-solidity\contracts\token\ERC20\BasicToken.sol...
Compiling zeppelin-solidity\contracts\token\ERC20\ERC20.sol...
Compiling zeppelin-solidity\contracts\token\ERC20\ERC20Basic.sol...
Writing artifacts to .\build\contracts
 
Using network 'rinkeby'.
 
Running migration: 1_initial_migration.js
  Replacing Migrations...
  ... 0x2ce47755f6112ab384a14910656eddb18fa94061cc1dc0349f7b899fb3ba9f84
  Migrations: 0x5903b751a054c281f12a354a8d9bb2304a584447
Saving successful migration to network...
  ... 0x6a7b74a8d897593042da8b7f349a39e5238f5ed2dce302965ef50ccc58b0260c
Saving artifacts...
Running migration: 2_deploy_hamburgercoin.js
  Deploying SujiCoin...
  ... 0x1d52f1e2805d04640d70a8f109f07292bdde2469dd377ac3315964956563ef53
  SujiCoin: 0x2e7b9c9c7c74bac74d069e57128dc66898ff41a9
Saving artifacts...
cs

최종적으로 나온 SujiCoin: 0x2e7b9c9c7c74bac74d069e57128dc66898ff41a9

0x.... 이 부분이 현재 올라간 계약 부분이다. 그럼 잘 올라갔는지 확인해보자. 

여기에서는 Rinkeby test net을 기본으로 한다. 

https://rinkeby.etherscan.io/address/0x2e7b9c9c7c74bac74d069e57128dc66898ff41a9

이 주소로 가서 테스트 서버에 정상적으로 올라갔는지 확인 해본다. 

성공적으로 올라간 것을 볼 수 있다. 그러면 이걸 다시 제대로 등록 되는 지 확인해보자. 

Address( 0x2e7b9c9c7c74bac74d069e57128dc66898ff41a9 ) 을 복사를 해서 Metamask 토큰에 넣어보자.


토큰 등록하기

주소 입력하기

위와 같이 SUJI 토큰이 등록된 걸 볼 수 있다.

그럼 전송을 서로간에 해보자.

우선 https://www.myetherwallet.com/ 으로 가보자.

오른쪽에 보면 Metamask 연동하는 부분이 보인다. 클릭하자.



계정을 바꾸는 방법은 오른쪽 상단 클릭시 변경가능하다. 

이렇게 해서 수지토큰 이 탄생되었다. 



7 Comments
  • 프로필사진 2018.03.23 10:25 비밀댓글입니다
  • 프로필사진 리엑티브한 행복한 수지아빠 2018.03.25 20:53 신고 위에 설치 방법이 자세히 나와있습니다. 우선 노드를 기본적으로 설치가 되어있어야 합니다.
  • 프로필사진 2018.04.24 10:26 비밀댓글입니다
  • 프로필사진 량두 2018.12.02 21:39 안녕하세요 궁금한게 있어서 질문 올립니다.
    혹시 이 다음 순서인 서버로 코인을 등록해서 실제로 사용가능하게 만들수 있는 기술은 어떤걸 배워야 할 수 있나요
    이더스캔 또는 이더플로러에 제가 만든 Token을 올리고 싶습니다.
  • 프로필사진 리엑티브한 행복한 수지아빠 2018.12.13 19:20 신고 소스를 메인서버로 바꿔서 올리면 올리면 됩니다. 물론 가스비도 들어가죠.
  • 프로필사진 firenews 2021.08.12 16:22 신고 제2의 비트코인 꼭보세요!! (이제 올라갈듯 ㅋ)

    2008년에 비트코인을 매일 50코인을 무료로 채굴할 수 있었습니다. 대부분의 사람들은 가치가 없다고 느꼈습니다. 지금 비트코인(Bitcoin)은 1코인당 6000만원 상당의 가치가 있습니다.

    2011년에 라이트코인이 선보였고, 매일 100코인을 무료로 채굴할 수 있었습니다. 대부분의 사람들은 이것이 여전히 가치가 없다고 생각했습니다. 라이트코인(Lite coin)은 현재 1코인에 30만원입니다.

    이더리움이 2015년에 나왔습니다. 매일 30코인을 무료로 채굴할 수 있었습니다. 대부분의 사람들은 여전히 그것을 믿지 않았습니다. 이제 이더이움(Ethereum)은 1코인당 300만원 상당의 가치가 있습니다.

    현재 전 세계적으로 돌풍을 일으키고 있는 상장을 준비중인 최고의 가치를 내재하고 있는 코인을 알려드립니다.

    **파이코인**

    파이코인은 2019년에 태어났고 몇 번의 반감기를 거쳐 지금 하루에 6코인정도를 무료로 채굴할 수 있습니다.

    다음 반감기 오기전 혹은 무료채굴 종료 전에 서두르셔야 합니다.

    비트코인의 단점을 보완하여 스마트폰으로 채굴 할수 있는 파이코인.

    스마트폰의 성능에 전혀 지장이 없으며, 하루 1번의 스위칭으로 24시간(1세션)동안 무료 채굴 합니다.

    이 황금같은 기회를 놓치지 마세요..!!

    파이(PI)는 스탠퍼드 박사들이 개발한 새로운 디지털 화폐이며 전 세계적으로 2100만 명 이상의 사용자가 존재합니다.
    파이를 받으시려면 앱스토어에 파이네트워크(pi network) 검색 설치 후 가입 시 저의 사용자 이름 firenews 누르시면 가입됩니다.

    http://minepi.com/firenews

    파이코인 이외에 2번째로 관심있는 코인인 비(bee)코인은 현재 1200만명이 넘고 올해 상장합니다.
    앱스토어에서 bee network 치고 다운로드받아 추천인 firenews1004 입니다.

    영국에서 나온 올해 9월 상장예정인 유망한 이글코인은 앱스토어에서 이글코인 치시고 다운받으셔서 추천인 firenews 입니다.

    싱가폴에서 나온 올해 상장예정인 전망 높은 ANT코인은 앱스토어에서 ANT NETWORK 치시고 다운 받아 추천인 firenews1004 입니다.

    카카오그룹에서 나온 유망한 코인인 카우카우코인은 핫빗코리아에 상장했으며 아직 채굴 가능합니다.
    카우카우코인 다운 받으셔서 추천인 ZBKJNQ 입니다.
  • 프로필사진 firenews 2021.08.12 16:22 신고 제2의 비트코인 꼭보세요!! (이제 올라갈듯 ㅋ)

    2008년에 비트코인을 매일 50코인을 무료로 채굴할 수 있었습니다. 대부분의 사람들은 가치가 없다고 느꼈습니다. 지금 비트코인(Bitcoin)은 1코인당 6000만원 상당의 가치가 있습니다.

    2011년에 라이트코인이 선보였고, 매일 100코인을 무료로 채굴할 수 있었습니다. 대부분의 사람들은 이것이 여전히 가치가 없다고 생각했습니다. 라이트코인(Lite coin)은 현재 1코인에 30만원입니다.

    이더리움이 2015년에 나왔습니다. 매일 30코인을 무료로 채굴할 수 있었습니다. 대부분의 사람들은 여전히 그것을 믿지 않았습니다. 이제 이더이움(Ethereum)은 1코인당 300만원 상당의 가치가 있습니다.

    현재 전 세계적으로 돌풍을 일으키고 있는 상장을 준비중인 최고의 가치를 내재하고 있는 코인을 알려드립니다.

    **파이코인**

    파이코인은 2019년에 태어났고 몇 번의 반감기를 거쳐 지금 하루에 6코인정도를 무료로 채굴할 수 있습니다.

    다음 반감기 오기전 혹은 무료채굴 종료 전에 서두르셔야 합니다.

    비트코인의 단점을 보완하여 스마트폰으로 채굴 할수 있는 파이코인.

    스마트폰의 성능에 전혀 지장이 없으며, 하루 1번의 스위칭으로 24시간(1세션)동안 무료 채굴 합니다.

    이 황금같은 기회를 놓치지 마세요..!!

    파이(PI)는 스탠퍼드 박사들이 개발한 새로운 디지털 화폐이며 전 세계적으로 2100만 명 이상의 사용자가 존재합니다.
    파이를 받으시려면 앱스토어에 파이네트워크(pi network) 검색 설치 후 가입 시 저의 사용자 이름 firenews 누르시면 가입됩니다.

    http://minepi.com/firenews

    파이코인 이외에 2번째로 관심있는 코인인 비(bee)코인은 현재 1200만명이 넘고 올해 상장합니다.
    앱스토어에서 bee network 치고 다운로드받아 추천인 firenews1004 입니다.

    영국에서 나온 올해 9월 상장예정인 유망한 이글코인은 앱스토어에서 이글코인 치시고 다운받으셔서 추천인 firenews 입니다.

    싱가폴에서 나온 올해 상장예정인 전망 높은 ANT코인은 앱스토어에서 ANT NETWORK 치시고 다운 받아 추천인 firenews1004 입니다.

    카카오그룹에서 나온 유망한 코인인 카우카우코인은 핫빗코리아에 상장했으며 아직 채굴 가능합니다.
    카우카우코인 다운 받으셔서 추천인 ZBKJNQ 입니다.
댓글쓰기 폼