블록체인
@켄타님이 위키 제목과 내용을 고쳤습니다.

dapp 101 프리퀄

이슈들

맥에서 생성한 geth private network환경에서

  • truffle solidity test 구동안됨(여러 개의 solc 돌릴 때, gas limit error)
    • genesys file에 gas limit 수가 작아서 그런 것 같아보임(윈도우에서 확인 필요)
    • garanch에서 gas limit 을 크게 했을 때, 동작함
    • private network genesis, gas limit 0x8000000 동작함
  • truffle test 시에 역시 복잡한 컨트랙트 작성 시 private network에 동작을 잘 하지 않음
    • truffle develop 또는 garanche 사용 권고

-------------------------------------------------------------------------------

개발환경(ubuntu 16.04)

 

0. 이더리움 기반의 Dapp 만들기 전체 조망해보기

https://steemit.com/kr/@pangol/4njpxt-dapp

 

1. 이더리움 Dapp만들기 1.[이더리움 설치와 geth 구동]

https://steemit.com/kr/@pangol/dapp-1-geth

  • 맥에 geth 설치하기
    • brew tap ethereum/ethereum
    • brew install ethereum

 

2. 이더리움 Dapp만들기 2.[geth 실행과 private network 구동]

https://steemit.com/kr/@pangol/dapp-2-geth-private-network

{
"config": {
"chainId": 33,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"nonce": "0x0000000000000042",
"timestamp": "0x0",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"gasLimit": "0x8000000",
"difficulty": "0x400",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"coinbase": "0x419478eede15f7bdfaafcea0900dd006d471b8af",
"alloc": {
"0x419478eede15f7bdfaafcea0900dd006d471b8af":{
"balance":"10000000000000000000000000000000"
}
}
}

사용한 제네시스 블록 파일

3. 이더리움 Dapp만들기 3. [private network와 클라이언트 앱 연동하기(Ethereum Wallet)]

https://steemit.com/kr/@pangol/dapp-3-private-network-ethereum-wallet

- mac의 경우, ipc 경로

  • $HOME/Library/Ethereum/geth.ipc

 

4. 이더리움 Dapp만들기 4.Private network와 Remix 연동하기(geth rpc

옵션 사용)

https://steemit.com/kr/@pangol/dapp-4-private-network-remix-geth-rpc

 

5. 이더리움 Dapp만들기 5. 스마트 컨트랙트 배포하고 사용하기(solc 컴파일 이용)

- https://steemit.com/kr/@pangol/dapp-5-solc

 

6. 이더리움 Dapp만들기 [6. web3.js를 이용해서 geth와 통신하기]

- https://steemit.com/kr/@pangol/dapp-6-web3-js-geth

7. truffle 사용법

https://steemit.com/kr/@pangol/dapp-7-truffle

-------------------------------------------------------------------------------

8. truffle test, debug, pm(pakage management), module 작성 중

  • truffle test
    • truffle test - test/metacoin.js
  • truffle에서 smart contract package management
    • truffle install packagename
    • ethpm을 사용
    • ethpm 상태에 따라 되기도 하고 안되기도 함
      • https://www.ethpm.com 상태를 주시하면서 사용
      • 또는 npm을 사용해서 가져오기
        • npm install ethpm
  • truffle debug
    • geth --rpcapi "debug"가 포함되어 있어야함
    • truffle debug <transaction hash>
      • transaction hash는 컨트랙트에서 transactionhash로 획득
      • 일반 트랜잭션 해쉬도 가능함
  • truffle exec <파일이름>
    • js파일을 작성할 때
      • var Simple = artifact.require("Simple") 처럼 ABI를 로딩 필수
      • 자바스크립트 모듈처럼 module.exports() 안에 작성

var Simple = artifacts.require("Simple");

module.exports = function(callback){
  var simple;
  Simple.deployed().then(function(instance){
    simple = instance;
    return simple.set(100);
  });
}

  • truffle create (contract|migration|test) Name
    • 옵션에 따른 파일을 생성해줌
  • truffle을 이용해서 Dapp 작성 순서 (js 파일)
    • web data 초기화
    • web3 설정
      • 사용할 network와 연결 설정
    • 컨트랙트 초기화
      • 트러플을 이용해서 컨트랙트와 연결

---------------------------------------------------------------------------

---------------------------------------------------------------------------

추후 생각해볼 것

최종 퍼블리시 하는 곳: git? 스팀잇? 브런치?)

gitbook 형태로 공개

git 으로 소스를 공유하면 커밋 단계 별 학습이 가능할 것 같아서 편해보임)

-----------------------------------------------------------------------------

작성
공감해요
2
기술 가이드 채널의 다른 게시글 더 보기
기술 가이드 채널의 다른 게시글 더 보기
기술 가이드 채널은? 자세히 보기
빠띠에 쓰이는 기술을 소개하고 그 기술을 익히기 위한 가이드를 모읍니다.
기술 가이드 채널에 가입해서 흥미진진한 소식을 받아보세요.
가입하기