Blockchain Basic
환경셋팅
1. Window 설정 켜기/끄기
- 체크 후 리부팅
2. 마이크로 소프트 스토어에서 우분투 설치
3. 우분투 접속
ethadm 계정 생성
root 계정 비밀번호 설정
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
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]