Blockchain Basic

1 분 소요

환경셋팅

1. Window 설정 켜기/끄기

image

  • 체크 후 리부팅

2. 마이크로 소프트 스토어에서 우분투 설치

image

3. 우분투 접속

ethadm 계정 생성

image

root 계정 비밀번호 설정

image

4. go-lang 최신버전 설치

sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt update
sudo apt install golang-go
go version

5. etherium 설치

cd
git clone -b release/1.9 https://github.com/ethereum/go-ethereum    #github에서 소스코드 다운로드  
cd go-ethereum/
sudo apt install make
make geth                                                           # 컴파일

6. 환경변수 설정

.profile 수정하기
cd
vi .profile
PATH 추가하기
  • 맨 밑으로 이동 : shift + o
  • 아래 PATH 추가
PATH="$PATH:/home/ethadm/go-ethereum/build/bin"
  • 저장 : ESC → :wq 입력 → 엔터
확인
cd
geth version

image

7. 제네시스 블록을 생성

Geth를 이용해 Ethereum private Network를 구성하기 위해서는 처음 제네시스 블록을 생성해주어야 한다.

이때, Genesis.json에 제네시스 블록에 대한 설정을 해주는데, 이 파일의 구조를 알면 대략적인 이더리움 블록의 구조를 알 수 있다.

참고 : 제네시스 블록

genesis.json 파일 만들기
mkdir eth
cd eth
cat > genesis.json                    # 엔터
{
    "config" :{
        "chainId" : 5696, 
        "homesteadBlock": 0,
        "byzantiumBlock": 0,
        "constantinopleBlock": 0,
        "eip150Block" : 0,
        "eip155Block" : 0,
        "eip158Block" : 0
    },
    "difficulty":"20",
    "gasLimit" :"2100000",
    "alloc" :{}
}                                     # 작성 후 ctrl+c

이더리움 접속 및 사용

1. 이더리움 접속하기

cd eth
geth --nousb --datadir ~/eth init ~/eth/genesis.json
geth --http --http.addr "localhost" --http.port "8545" --http.corsdomain "*" --http.api "eth,net,web3,personal" --datadir ~/eth --nodiscover --networkid 10 --allow-insecure-unlock --nousb console 2>> ~/eth/geth.log

2. 이더리움 계좌 생성 및 조회

personal.newAccount("<비밀번호>")     # 계좌생성
personal.newAccount("bts")
personal.newAccount("bts")
personal.newAccount("bts")
eth.accounts                          # 계좌 간단 조회
web3.personal.listWallets             # 계좌 상세 조회
eth.accounts[0]
eth.accounts[1]
eth.accounts[2]

image

업데이트: