IBM 이 주도하고 있는 Linux Foundation 의 Collaborative Project 인 Hyperledger 프로젝트 발표 후 Github 에 업데이트가 없다가. 조금전인 2016.02.17 오전 11시 경에 README.md 의 업데이트가 있었다.

현재 시점에서 이 HyperLedger TSC(Technical Steering Commitee)는 광범위한 유스케이스와 Value Add 된 솔루션을 올릴 수 있는 블록체인 플랫폼을 지향하고있다.

이 Project 에는 4가지 종류의 Contribution Proposal 이 올라왔다. 아래 제안들은 아직 결정된것이 아니며, TSC 가 열심히 검토해서 결정하겠다고 한다. (그러나 아마도 답은 이미 나와있는상태에서 시작하는 게임 아닐까 싶기도 하다. IBM이 아니겠는가? 아니면 DAH ..? 아니면 적절한 사상들 간의 종합적인 산출물이 나올 수 있을듯 한데..)


Ripple Proposed Contribution

Rippled 는 OSS 로, C++ 로 구현된 2012년 부터 작동중인 Public Blockchain 이며, Cross-Currency 지불을 가능케 하는 플랫폼이다. 주문장(Order Books) 기반으로 이루어지는 빠른 Transaction 과 복잡한 구현을 단순화 하는데에 초점이 맞추어져있다.

분산 원장(Distributed Ledger)기술로 NuDB 라는 고성능의 Key/Value 기반의 DB 를 포함하고 있다. 수 테라바이트의 데이터셋을 최소함의 RAM 소모로 핸들링 하기에 최적화 되어있다. SSD 와 같은 고성능의 I/O 가 필요하다.

https://github.com/ripple/rippled

IBM Proposed Contribution

IBM 은 Open Blockchain (OBC) 라는 이름으로 프로젝트를 하겠다고 발표한바 있고, 2월15일에 0.1.0을 릴리즈 하였다. License 는 Apache 기반으로 진행중이며, Hyper Ledger 프로젝트에 Contribute 하기 위해 오픈소스화 하였다고 한다. 정식으로 Hyper Ledger 프로젝트로 채택되면 IBM 은 이후 Hyperledger 에 집중하고, 아래 Repository 는 IBM 내부적인 필요성에 의해 관리한다고 한다. 언어는 Go 로 개발되어있다.

Open Blockchain 은 여러 산업에서 사용할 수 있게하기위한 목적의 저수준의 Fabric Code 이다. 핵심은 Smart Contract, Digital Assets, Record Repositoroes, Decentralized Network Providing Consensus, Cryptographic Security 이다.

https://github.com/openblockchain


Digital Asset Holdings Proposed Contribution

DAH 의 후보군은 기업을 위한 Blockchain Server 형태로, Client API 를 포함한다. 이 프로젝트도 Hyper Ledger 프로젝트 채택을 위한 목적으로 공개 된 프로젝트이다. 모듈화된 아키텍쳐와 설정 가능한 네트워크 구조는 금융권에 적합한 구조를 위해 설계되었다고 한다. 데이터 백본의 컨셉을 Multi-Organization 레벨로 확장한 것이다. 라이선스는 Apache 라이선이다.

금융권용 답게 Java 기반으로 구현되어있다. 골드만삭스를 비롯 각종 금융권들로 부터 많은 긍정적인 반응과 투자를 받은 회사로 상당히 유력한 후보군이라 볼 수 있다.

https://github.com/DigitalAssetCom/hlp-candidate


Blockstream Proposed Contribution

좀 됐긴 했지만 Elements 라는 이름의 Blockchain OSS 도 있다. Bitcoin 을 확장한 개념으로, Confidential Transactions, Segregated Wirness, Relative Lock Time 등등의 확장 개념이 들어가있다. Bitcoin testnet 과의 Pegging 도 가능하다.

https://github.com/ElementsProject/elements


앞으로 이 4개 Proposal 중에 어떤게 정식으로 Hyper Ledger 의 Codebase 또는 사상으로 채택될지는 모르겠으나 내생각에는 IBM 이 가장 유력하지 않는가 싶다. 애초에 TSC 가 보고있는 관점도 "산업 전반에 걸친" 블록체인 플랫폼이므로 (왠지 IBM 이 만들어낸 기준 스러워도 보이지만) 금융권에서 신뢰받고있는 DAH 의 codebase 또한 무시못할 것으로 보인다.

Hyper Ledger 가 아니더라도, DAH 의 Blockchain 소스가(물론 일부이고 Hyper Ledger 프로젝트 채택 목적이겠지만) 공개되어 올라온것 만으로도 특히 국내 금융권에게는 희소식이 아닐까 싶다.


반응형
블로그 이미지

Good Joon

IT Professionalist Since 1999

,
불과 며칠 전에 1.1.3 버전이 Release 되었다. 1.1.2 부터 PV62(Protocol Version 62) 와 PV63 을 지원 중이며, 1.1.2 대비 eth Console 과 AlethOne 크래쉬 버그픽스가 있었다. 이 1.1.3 Release Branch 로 빌드 해보기로 한다.

Mac OS X 에서는 그나마 빌드 및 실행이 잘되는 편인데, Windows 빌드는 예전 버전들 부터 잘 되지 않는 편이다. 빌드는 되더라도 기능에 버그가 있거나 하는 경우가 많다.

▌준비할 것

빌드하기 전에 우선 아래 준비사항이 모두 준비되었는지 확인하자.

  1. Windows 7 또는 8 64비트 (32 비트 버전과 Windows 10 은 지원하지 않음)
  2. Git for Windows 1.9.0 이상
  3. 7-Zip 
  4. CMake 3.0 이상
  5. Windows 7 또는 8 SDK 
  6. Visual Studio 2013 Community Edition (Update 5 를 별도로 받아 Build 넘버 12.0.40629.00 이 되도록 한다)
    Visual Studio 2015 는 아직 지원 안함

▌환경 설치

▪ Git 설치

Git 사이트 에서 Git for Windows 다운로드 받고, Git Bash Shell 을 설치하도록 한다.


설치하면 Git Bash 로 실행 되는지 정도는 확인하자.



▪ 7zip 설치

7zip 사이트 에서 최신 exe 버전을 다운로드 한다.


다운로드 받은 exe 파일을 실행하여 원하는 Directory 에 설치한다


그리고 반드시 설치한 디렉토리를 PATH 에 추가해 주어야 한다


위처럼 System 의 PATH 환경변수에 7zip 설치된 경로를 추가 해 주었다.

▪ CMake 설치

CMake 사이트 에서 Latest Release 에서 Installer 버전을 다운로드 받아서 설치한다.


PATH 에 CMake 를 자동 추가하도록 설치 시 옵션을 선택한다.



▪ Windows SDK 설치

Windows SDK 사이트 (7 또는 8.1) 에서 SDK 를 다운로 받아 설치한다.


▪ Visual Studio 2013 Community

Visual Studio 2013 Community 사이트 에서 Installer 를 다운로드 받고 설치한다. 시간이 꽤 걸린다.



위 처럼 Update 5 를 설치하고 있는지 확인한다.

이제 소스를 Checkout 하고 빌드를 해보도록 하자

▌소스 Clone

Git Bash 를 통해 MinGW 의 Bash Shell 로 들어간다.

우선 디렉토리를 아래와 같이 만들었고, project 밑으로 프로젝트를 clone 할 예정이다.
[goodjoon project]$  pwd
/d/ethereum/project
[goodjoon project]$

git 으로 Repository 를 Clone 한다. Submodule 들이 다수 걸려있으므로, submodule 들도 --recursive 옵션으로 모두 가져온다.
[goodjoon project]$
brella.gitproject]$  git clone --recursive https://github.com/ethereum/webthree-umbrella
Cloning into 'webthree-umbrella'...
remote: Counting objects: 71041, done.
remote: Compressing objects: 100% (2/2), done.
Receiving objects:  56% (40071/71041), 16.92 MiB | 2.96 MiB/s

webthree-umbrella 가 clone 되었고, 
[goodjoon project]$  ls -al
total 8
drwxr-xr-x 1 korean44 없음 0 Feb 14 23:16 ./
drwxr-xr-x 1 korean44 없음 0 Feb 14 23:04 ../
drwxr-xr-x 1 korean44 없음 0 Feb 14 23:16 webthree-umbrella/
[goodjoon project]$

webthree-umbrella 해서 git status 를 해보면
[goodjoon webthree-umbrella]$  git status
On branch develop
Your branch is up-to-date with 'origin/develop'.
nothing to commit, working directory clean
[goodjoon webthree-umbrella]$
확인해보면, 위 처럼 develop Branch 에 HEAD 가 있음을 알 수 있다. 그래서, Release 브랜치로 다시 checkout 을 해야한다.

[goodjoon webthree-umbrella]$  git checkout release
M       webthree-helpers
Branch release set up to track remote branch release from origin.
Switched to a new branch 'release'
[goodjoon webthree-umbrella]$  git status
On branch release
Your branch is up-to-date with 'origin/release'.
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   webthree-helpers (new commits)

no changes added to commit (use "git add" and/or "git commit -a")
[goodjoon webthree-umbrella]$

release Branch 로 checkout 을 하고 status 를 보면, submodule 이 실제로 update 가 안되었기 때문에 modified 된것처럼 나온다. 
Submodule 들도 Update 해주자
[goodjoon webthree-umbrella]$  git submodule update --recursive
Submodule path 'webthree-helpers': checked out '4932539374f9b9ea1030b4514c5292620d55f3c0'
[goodjoon webthree-umbrella]$  git status
On branch release
Your branch is up-to-date with 'origin/release'.
nothing to commit, working directory clean
[goodjoon webthree-umbrella]$

불과 사흘전에 Release 를 해서 그런지 Submodule 들이 대부분 최신 Branch 여서 webthree-helpers 브랜치만 Update 되었다.

▌Dependency 다운로드

Windows 에서 빌드를 하기 위해서는 llvm 및 Qt 을 비롯해 아래와 같은 라이브러리들이 필요하다
boost 1.55.0
cryptopp 5.6.2
curl 7.4.2
jsoncpp 1.6.2
json-rpc-cpp 0.5.0
leveldb 1.2
llvm 3.7.0
microhttpd 0.9.2
OpenCL_ICD 1
qt 5.4.1
miniupnpc 1.9
v8 3.15.9

apt 나 brew, port 가 없는 Windows 에서 일일이 라이브러리를 다운로드 받아 설치하기란 매우 번거로운 일이기때문에 C++DEV 팀에서 간단한 배치를 하나 제공한다.
/d/ethereum/project/webthree-umbrella/webthree-helpers/extdep
위 경로로 가보면 getstuff.bat 파일이 있는데, 이 파일을 실행시키면 모든 dependency 라이브러리들을 다운로드 받는다

[goodjoon extdep]$  ./getstuff.bat
한참동안을 뭔가 잘못된 것 처럼 가만히 있는다. 라이브러리를 하나씩 다운로드 받고 압축 풀고를 반복한다. 4.4GB 를 다운받고 압축 푸느라 수십분 정도 작업이 길어질 수 있으므로 TV나 좀 보다오자.
인터넷 연결만 잘 되어있다면 안될 이유는 없을것이다.

오늘은 너무 졸려서 이만..^^;;
다음은 본격적인 소스 빌드와 오류 해결로 넘어가보겠다.


반응형
블로그 이미지

Good Joon

IT Professionalist Since 1999

,