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]

