WEMIX3.0
WEMIX3.0 (KOR)
WEMIX3.0 (KOR)
  • Introduction
    • Blockchain Basics
      • What is Blockchain?
      • Consensus Algorithm
      • Transactions
      • Gas
      • Account
  • Design
    • Architecture
    • Consensus
    • Governance
    • Minting
    • EIP1559
    • Fee Delegation
    • Eco Fund
    • Roadmap
  • Quick Start
    • Start Node
      • Use Binary
        • Command-line Option
      • Use Public API Server(RPC)
    • Connect Node
    • Account
      • Use MetaMask
    • Testnet Faucet
  • Install & Operation
    • End Node
      • System Requirements
      • Firewall Setting
      • Install Guide
    • Block Producer Node
      • System Requirements
      • Firewall Setting
      • Install Guide
    • Download
    • Operation Guide
  • dApp Developer
    • Smart Contract
      • Solidity
      • Precompiled Contracts
      • Sample Contracts
    • JSON-RPC
    • API Reference
      • Account APIs
      • Block APIs
      • Contract APIs
      • Transaction APIs
      • Event logs APIs
      • Tokens APIs
  • Tutorial
    • Wallet 생성하기
    • Test Coin 받기
    • Smart Contract 생성하기
      • Remix에서 개발하기
      • Truffle 사용하기
      • Hardhat 사용하기
    • ERC-20 Token
      • ERC-20 Contract 만들기
      • ERC-20 Token 확인하기
      • ERC-20 Token 보내기
      • ERC-20 Token API 조회하기
      • ERC-20 Token 소각하기
    • ERC-721 Token
      • ERC-721 Contract 만들기
      • ERC-721 Minting하기
      • ERC-721 Token API 조회하기
      • ERC-721 Token 소각하기
    • Fee Delegation 사용하기
  • Manual
    • Explorer
    • Wallet
  • FAQ
Powered by GitBook
On this page
  • Build
  • Docker 이미지를 이용한 Build
  1. Install & Operation
  2. Block Producer Node

Install Guide

Block Producer Node

PreviousFirewall SettingNextDownload

Last updated 11 months ago

Build

WEMIX3.0은 이더리움을 기반으로 구현되어 빌드 방법은 go-ethereum과 동일하며 다만 geth가 gwemix로 변경되었습니다. BP의 설치방법은 EN의 설치와 동일하며 동일한 binary를 사용합니다. 따라서 동일한 절차로 build까지 진행됩니다.

첫번째, 개발자는 리눅스 머신에서 아래의 명령어를 실행하여 소스코드를 다운로드 받습니다.

git clone https://github.com/wemixarchive/go-wemix.git

이후 해당 go-wemix 디렉토리로 이동하여 아래의 명령을 실행하면 gwemix의 빌드가 시작됩니다. USE_ROCKSDB option에 따라 Rocksdb 혹은 Leveldb로 빌드됩니다. 두 데이터베이스는 호환성이 없으니 다른 머신에서 받아놓은 chaindata를 이용할 때는 db버전을 꼭 확인해야 합니다.

본 장은 Ubuntu환경을 기준으로 설명되어있습니다. Ubuntu환경에서 직접 소스코드로부터 gwemix를 빌드하기 위해서는 다음의 과정을 따라서 진행해야 합니다.

Dependency

sudo apt-get update
sudo apt-get install -y build-essential golang

Rocksdb only

sudo apt-get install -y libsnappy-dev libjemalloc-dev
cd /usr/lib/x86_64-linux-gnu/
sudo ln -sf libjemalloc.so.2 libjemalloc.so.1xx

Download source code

git clone https://github.com/wemixarchive/go-wemix.git 
cd go-wemix

In case of rocksdb

make

In case of leveldb

make USE_ROCKSDB=NO

Copy and untar "build" to $GWEMIX_HOME

GWEMIX_HOME='/opt/gwemix'
sudo mkdir -p $GWEMIX_HOME 
sudo chown $USER:$USER $GWEMIX_HOME
cp build/gwemix.tar.gz $GWEMIX_HOME/
cd $GWEMIX_HOME 
tar xvzf gwemix.tar.gz

Create .rc at $GWEMIX _HOME with the following info

PORT=8588 
DISCOVER=1        # 1 for enable discovery mode, 0 for disable discovery mode
TESTNET=1         # 1 for Testnet or remove this line for Mainnet
SYNC_MODE=full
GWEMIX_OPTS="--txpool.nolocals --snapshot=false --maxpeers=100"

Start gwemix

$GWEMIX_HOME/bin/gwemix.sh start

Check log

tail -F $GWEMIX_HOME/logs/log

Dependency

sudo apt-get update
sudo apt-get install -y build-essential 

Rocksdb only

sudo apt-get install -y libsnappy-dev libjemalloc-dev
cd /usr/lib/x86_64-linux-gnu/
sudo ln -sf libjemalloc.so.2 libjemalloc.so.1xx

Install go version 1.18.4

wget https://go.dev/dl/go1.18.4.linux-amd64.tar.gz 
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.18.4.linux-amd64.tar.gz 
export PATH=$PATH:/usr/local/go/bin 
source $HOME/.profile 

Download source code

git clone https://github.com/wemixarchive/go-wemix.git 
cd go-wemix

In case of rocksdb

make

In case of leveldb

make USE_ROCKSDB=NO

Copy and untar "build" to $GWEMIX_HOME

GWEMIX_HOME='/opt/gwemix'
sudo mkdir -p $GWEMIX_HOME 
sudo chown $USER:$USER $GWEMIX_HOME
cp build/gwemix.tar.gz $GWEMIX_HOME/
cd $GWEMIX_HOME 
tar xvzf gwemix.tar.gz

Create .rc at $GWEMIX_HOME with the following info

PORT=8588 
DISCOVER=1        # 1 for enable discovery mode, 0 for disable discovery mode
TESTNET=1         # 1 for Testnet or remove this line for Mainnet
SYNC_MODE=full
GWEMIX_OPTS="--txpool.nolocals --snapshot=false --maxpeers=100"

Start gwemix

$GWEMIX_HOME/bin/gwemix.sh start

Check log

tail -F $GWEMIX_HOME/logs/log

위와 같이 make를 실행하는 경우, 설치 편의를 위해 logrot와 gwemix.tar.gz가 한번에 빌드되어 build 디렉터리에 압축파일로 저장됩니다. 생성된 gwemix.tar.gz에는 다음과 같은 파일들이 포함됩니다.

bin/gwemix        ## gwemix binary
bin/gwemix.sh     ## gwemix control shell script
bin/logrot        ## log rotator

Docker 이미지를 이용한 Build

WEMIX3.0은 라이브러리 의존성이 문제가 되는 경우를 해결하기 위하여 docker 이미지를 사용할 수 있습니다. Linux혹은 MacOS X에서 빌드하는 경우 다음 과정을 통하여 빌드할 수 있습니다.

현재 Apple Chip MacOS환경과 Windows환경에서 docker build를 지원하지 않으며, 추후 지원을 제공할 예정입니다.

make USE_ROCKSDB=YES gwemix-linux
make USE_ROCKSDB=NO gwemix-linux

Docker를 통해서 빌드된 gwemix.tar.gz 바이너리를 Ubuntu환경으로 복사하여 설치하려면 다음의 과정을 따라야 합니다.

Rocksdb only

sudo apt-get install -y libsnappy-dev libjemalloc-dev
cd /usr/lib/x86_64-linux-gnu/
sudo ln -sf libjemalloc.so.2 libjemalloc.so.1

Copy and untar "build" to $GWEMIX_HOME

GWEMIX_HOME='/opt/gwemix'
sudo mkdir -p $GWEMIX_HOME 
sudo chown $USER:$USER $GWEMIX_HOME
cp build/gwemix.tar.gz $GWEMIX_HOME/
cd $GWEMIX_HOME 
tar xvzf gwemix.tar.gz

Create .rc at $GWEMIX_HOME

PORT=8588 
DISCOVER=1        # 1 for enable discovery mode, 0 for disable discovery mode
TESTNET=1         # 1 for Testnet or remove this line for Mainnet
SYNC_MODE=full 
GWEMIX_OPTS="--txpool.nolocals --snapshot=false --maxpeers=100"

Start gwemix

$GWEMIX_HOME/bin/gwemix.sh start

Check log

tail -F $GWEMIX_HOME/logs/log

Rocksdb only

sudo apt-get isntall libjemalloc1

Copy and untar "build" to $GWEMIX_HOME

GWEMIX_HOME='/opt/gwemix'
sudo mkdir -p $GWEMIX_HOME 
sudo chown $USER:$USER $GWEMIX_HOME
cp build/gwemix.tar.gz $GWEMIX_HOME/
cd $GWEMIX_HOME 
tar xvzf gwemix.tar.gz

Create .rc at $GWEMIX_HOME

PORT=8588 
DISCOVER=1        # 1 for enable discovery mode, 0 for disable discovery mode
TESTNET=1         # 1 for Testnet or remove this line for Mainnet
SYNC_MODE=full 
GWEMIX_OPTS="--txpool.nolocals --snapshot=false --maxpeers=100"

Start gwemix

$GWEMIX_HOME/bin/gwemix.sh start

Check log

tail -F $GWEMIX_HOME/logs/log
go-wemix