이더리움 클래식 요즘 뭐하니? (feat. 문과생)

이더리움 클래식은 포크 이후 어떻게 됐을까요? 근황부터 개발 맛보기까지

by SKKRYPTO

직전 연재했던 리브라 글을 시작으로 다양한 블록체인 플랫폼들을 알아보고 직접 사용해보는 글들을 써보고자 합 니다. 백서를 읽는 것에서 끝나는 것이 아닌 직접 사용해봄으로써 좀 더 깊은 이해를 할 수 있기 때문입니다.

1) 이더리움 클래식?

2) 이더리움 클래식 CLI 설치하기


1) Ethereum Classic?


2017년 암호화폐 열기가 뜨거웠던 시절 업비트에 가입한 저는 이더리움과 이더리움 클래식이 있는 것을 확인해 던 기억이 납니다. 왜 똑같은 이름의 코인이 두 개가 있지?라는 궁금증과 함께 찾아봤던 기억이 있습니다. 이더리움과 이더리움 클래식은 2016년 7월에 있었던 The DAO 해킹 사건을 계기로 하드 포크를 통해 분리되었습니다. 기존 이더리움 체인을 사용하는 것이 이더리움 클래식이고 분리되어 나간 체인이 지금 우리가 아는 이더리움입니 다. The DAO 해킹 사건에 대해서 간략하게 정리하자면 이더리움 커뮤니티인 DAO가 이더리움으로 환전을 가능하 게 하는 스플릿 기능을 공격해 520억 원가량을 이동시켰던 사건입니다. 다행히 해킹당한 이더리움은 규정 덕분에 해커들이 출금하지 못했습니다 조치를 취했지만, 거래소 해킹이 아닌 블록체인 자체의 해킹 사건이란 이유로 커뮤니티에 큰 영 향을 주었던 사건입니다. 이 사건에 대한 반응은 크게 3가지였습니다.

1. 소프트 포크: 해커의 지갑 사이의 이동을 정지하는 방안

2. 하드 포크: 다오 관련 부분을 롤백해 도난 전의 상태로 복구하는 것

3. 도덕적이지 못한 행위이지만 블록체인 상의 기록을 롤백하거나 인정하지 않는 것은 옳지 않다고 생각하는 입장

2번의 안으로 분리된 것이 이더리움이며, 3번의 입장을 고수하는 사람들은 이더리움 클래식의 주장입니다. 그리고 이것이 제가 알던 이더리움 클래식의 마지막 모습입니다….

하지만 시간이 지난 2019년 이더리움 클래식은 어떤 모습일까요? 조사한 바로는 이더리움 클래식은 금융상품으로써의 이더리움 클래식과 플랫폼으로써의 이더리움 클래식 두 가지의 방향으로 발전하고 있는 것 같습니다. 이더리움 클래식은 디지털 커런시 그룹(DCG)의 자회사인 그레이스 케일이라는 미국의 신탁투자펀드의 상품으로써 야후 파이낸스에 판매되고 있습니다.

야후 파이낸스

51% 공격 이슈와 경영난으로 개발팀이 문을 닫는 악재들이 있었지만 그레이스 케일이라는 든든한 후원자를 등에 업고 플랫폼으로의 개발도 진행하고 있었습니다. 기존 이더리움 및 타 플랫폼 개발자들이 쉽게 사용할 수 있도록 고려한 Jade suite를 만들었습니다. Jade suite를 통해 이더리움 클래식 계정의 컨트롤부터 문서화, 개발 구조까지 단순화할 수 있습니다. 또한 에메랄드 SDK를 통해 쉽게 디앱을 개발할 수 있는 환경을 구축했습니다.

2) Ethreum Classic Emerald SDK를 활용해 CLI 실행


먼저 Emerald SDK의 특징을 살펴보겠습니다. 기존 애플리케이션과 달리 블록체인 애플리케이션은 비가역 적입 니다. 따라서 블록체인 플랫폼은 테스트 넷을 통해 자신이 만든 서비스를 테스트한 다음 메인 넷에 디플로이 시켜야 합니다. 따라서 Dapp을 만들기 위해 ETCDEV는 다음과 같은 툴들이 필요하다고 말합니다.

- 인터페이스: 실제 유저가 어떻게 댑을 사용하는지 볼 수 있습니다.

- 테스트 넷: 시험해볼 수 있는 테스트 넷

- 지갑: 댑의 트랜잭션 발생을 위한 지갑 기능

- Block explorer: 만든 트랜잭션을 확인할 수 있는 블록 익스플로러

- Smart contract testing and deployment: 자신이 만든 스마트 컨트랙을 시험하고 디플로이 할 수 있는 기능

그래서 Emerald SDK는 다음과 같은 툴들을 지원합니다.

- Emerald-JS-UI & Emerald JS

- Emerald TestRPC

- Emerald Wallet

- Emerald explorar

- Emerald-CLI


1. 사전 준비

이제 기능을 소개했으니 본격적으로 시작해보겠습니다.

Emerald SDK를 사용하기 위해서 Emerald CLI를 설치해야 합니다.

클라이언트를 설치하기 위해서는 다음과 같은 준비물이 필요합니다.

- Homebrew(for Mac OS)

- Virtual machine or enable subsystem for linux WSL(for windows)

- NodeJS version manager: nodenv&node

-build or nvm

준비를 마치셨다면 터미널을 열어 디렉토리를 설정해줍니다.

그다음

$ brew install nodenv

$ brew install node-build

명령어를 통해 nodenv, node-build를 설치해줍니다. 이후 nodenv와 node-build가 설치됐는지 다음과 같은 명령어를 통해 확인해줍니다.

$ nodenv -v

$ node-build --version

다음과 같은 명령어를 통해 스테이블 노드를 설치하고 global로 만들어줍니다

$ nodenv install 8.11.1

$ nodenv global 8.11.1

nodenv를 실행해줍니다.

$ nodenv init

다음과 같은 메시지가 뜬다면 bash_profile을 만들어줘야 합니다 그리고 eval "$(nodenv init -)” 을 추가해줍니다 노드 디렉토리를 확인해줍니다.

$ which node

2. CLI 설치

다음과 같은 명령어를 통해 설치해줍니다(시간이 몇 분 걸립니다)

$ brew install libgcrypt

$ npm install -g https://github.com/ETCDEVTeam/emerald.git

설치가 완료됐다면 터미널을 재 실행시킨 다음 emerald -h를 입력해줍니다. 공식문서에 나온 멘트와 제가 실행시켜 나왔던 화면 메시지가 달라서 조금 당황했습니다. 그래서 공식문서의 명령어들을 살펴보겠습니다.

New- 새로운 프로젝트 생성

Testrpc: 이클 테스트 넷을 작동시킵니다

Wallet: 에메랄드 지갑을 시작합니다

explorer: 블록 익스플로러를 시작합니다.

deploy: 솔리디티를 네트워크에 디플로이 합니다.

Help : 특정 명령어의 도움말이 나옵니다.

추후 클라이언트 업데이트가 필요하다면 해당 명령어를 입력하시면 됩니다.

$ brew upgrade libgcrypt

$ npm install -g https://github.com/ETCDEVTeam/emerald.git


- 본 글은 https://etcdev.gitbook.io/docs/emerald-sdk를 참고해 만들어졌습니다.


마무리하며

좀 더 발전시켜 지갑도 생성하고, 트랜잭션도 발생시켜보고 싶었으나, 제가 node.js에 대한 지식이 부족해서 따라가기가 조금 벅찼습니다. Dependencies를 설치하는 과정이 너무 어려워서 좀 더 공부가 필요하다는 생각을 했습니다. 특히 bash_profile 같은 경우는 인터넷을 겨우 찾아 수정법을 확인했습니다. 개인적으로는 각 명령어 실행이 완료된 경우 어떤 메시지가 나오는지 혹은 에러 상황에서 무엇을 체크해야 하는지에 대한 피드백이 조금 더 추가되면 좋을 것 같습니다.


keyword
매거진의 이전글Libra 블록체인을 시작해보자 (feat. 문과생)