목록DevOps (186)
devops
Latency 블록체인의 확장성을 평가할 때 가장 많이 언급되는 TPS(Transaction per Seconds)는 말 그대로 1초에 몇 개의 트랜잭션을 처리하는 지를 확인하는 지표다. 하지만 단순히 TPS로만 평가하기엔 부족하다. 전송된 트랜잭션이 포함된 블록이 생성되어야, 실제 트랜잭션이 처리되었다고 판단할 수 있기 때문이다. 유저의 액션이 완결성 있게 실행되기까지 걸리는 시간을 블록이 생성된 시간으로 평가하기 위해서 Latency를 체크해야 한다. Latency는 처리량보다 지연시간을 기준으로 체인의 확장성을 평가하는 주요 지표라고 볼 수 있다. Quorum Blockchain 쿼럼은 JP모건에서 개발하고 현재 Consensys에서 인수하여 지속적으로 디벨롭 중인 Private Blockchain..
Raft Consensus Algorithm Raft는 이해하기 쉽게 디자인된 합의 알고리즘이라고 한다. fault-tolerance(내결함성)와 Performance(성능) 면에서 우수하여 다수의 노드를 클러스터링하는데 많이 사용한다. 대표적으로 etcd와 Hyperledger Fabric, ZooKeeper, Haddop, 요즘 내가 관심이 많은 Quorum 체인에서도 사용되고 있다. Raft는 합의 알고리즘을 3가지 문제를 나눠서 해결한다. 1) 리더 선출 2) 로그 복제 3) 안정성 보장 이 해결방법이 하나의 컨센서스 모듈로 구현된다고 볼 수 있다. 1) Leader Election 모든 노드는 특정 순간에 하나의 상태를 가지게된다. 모두가 임기 마다 3가지 중에 하나의 역할을 가지는데, 이 임기..
aws의 ec2에 간단한 ping 테스트하려는데 갑자기 아래와 같은 오류가 발생했다. pem 키 권한 문제도 아닌 것이, 동일한 키로 로컬 pc에서 테스트하면 ssh 접속엔 문제가 없었다. 알고보니, 해당 서버의 pem 파일문제였던 것! 리눅스에서 파일을 생성하지 않고, 사용하던 키 파일을 전송했더니 아래와 같이 테스트가 잘된다...
테세라(Tessera) 테세라는 프라이빗 트랜잭션을 암호화, 복호화하는 자바 프로그램으로, 무상태성이며 JDBC 클라이언트와 연결될 수 있다. 테세라는 아래 4개의 서비스로 구성될 수 있다. Tessera Peer to Peer Tessera Third Party Tessera Admin Tessera Quorum to Tessera Tessera Peer to Peer 이 서비스는 Tessera node간 통신을 위해 사용된다. 이 서비스를 활성화하기 위해서 tessera config 파일에 아래 section을 넣어야 한다. CommunicationType의 REST와 app의 P2P는 P2P 서비스를 위한 설정이다. auto-discovery를 true로 설정하면 하나의 노드만 연결해도 다른 노드들..
쿼럼(quorum)은 JP모건에서 높은 확장성 구현을 위해 이더리움을 하드포크하여 개발한 엔터프라이즈 블록체인이다. 각 노드는 전체 네트워크 합의를 기다리지 않고, 신뢰할 수 있는 특정 노드만이 합의하여 확장성을 크게 개선할 수 있다. 오픈소스기 때문에 많은 기업과 서비스들이 쿼럼을 활용해서 프라이빗 체인을 운용하고 테스트 중에 있는 것으로 보인다.쿼럼같은 엔터프라이즈 체인은 프라이버시가 중요한데, 이를 Tessera 라는 Private Transaction Manager가 역할을 해주고 있다. Tessera 테세라는 Consensys가 개발하고 있으며 Goquorum과 Hyperledger Besu에 사용되는 트랜잭션 매니저다. 주요 역할은 아래와 같다. 다른 트랜잭션 매니저와 함께 P2P 네트워크 구..
위메이드의 메인넷, 위믹스 3.0를 올려보려고 한다. requirements - Golang $ git clone https://github.com/wemixarchive/go-wemix.git $ cd go-wemix && make 빌드가 완료되면 아래와 gwemix.tar.gz 파일이 build 디렉토리에 생성된다. $ tar xvfz gwemix.tar.gz 압축을 풀면 아래와 같은 파일들이 생성되는데, gwemix.sh는 기본 디렉토리 경로가 /opt/ 기 때문에 /opt/wemix 디렉토리를 생성하고 아래 파일들을 옮긴다. bin/gwemix bin/gwemix.sh bin/solc.sh bin/logrot conf/WemixGovernance.js conf/genesis-template.jso..
Cosmos 체인의 아키텍처를 이해하기 위해선 상태머신과 텐더민트 그리고 인터페이스인 ABCI를 알아야한다. 하나씩 짚어보자 State Machine 블록체인은 'replicated deterministic state machine'이라고 부른다. 즉, 복제되는 결정론적인 상태머신이다. 상태머신은 컴퓨터 사이언스의 개념으로 머신이 다양한 상태를 가질 수 있으나, 특정 시점엔 하나의 상태만 가진다. 여기서 현재 시스템의 상태를 말하는 'state'와 상태를 변화시키는 트리거 역할을 하는 'transaction'이 있다. +--------+ +--------+ | | | | | S +---------------->+ S' | | | apply(T) | | +--------+ +--------+ 위를 보면 상..
Application Specific blockchain을 앱체인(App-chain)이라고 부르기도 한다. 즉 특정 어플리케이션만을 위해서 구축된 블록체인이다. 그래서 어플리케이션의 최적화를 위해서 코어부터 커스터마이징을 통해 원하는 체인 스펙을 설정한다. Cosmos SDK는 이런 앱체인에 특화된 프레임워크로 많은 블록체인 프로젝트에서 사용하고 있다. 아마 우리가 들어본 웬만한 프로젝트는 Cosmos SDK를 썼다고봐도 무방하다. 아래 레포는 cosmos sdk 기반의 체인들 리스트다. akash, cronos, evmos, ehos, kava, osmosis, terra, terra2 등 아주 유명한 프로젝트들이 cosmos sdk를 통해서 탄생했다. https://github.com/cosmos/c..
Cosmos SDK Cosmos는 흔히아는 ATOM 코인의 블록체인이다. 생각보다 높은 시총을 유지하고 있고, 매스컴에서도 많이 회자되는 체인인데, 그 이유는 이 SDK를 통해 생성된 체인들이 모두 연결되는 Cosmos IBC 덕분이라고 생각한다. 이 Cosmos SDK는 PoS 기반의 퍼블릭 블록체인을 쉽게 구축할 수 있는 오픈소스 프레임 워크로, 구축된 체인을 Application-specific blockchain이라 부르기도 한다. Cosmos SDK의 목표는 개발자가 쉽게 커스터마이징한 블록체인을 구축하고 Cosmos 기반 체인들과 연결하는 것에 있다. 최근들어 모듈식 블록체인이 뜨고 있는데, Cosmos SDK 또한 모듈들의 조합으로 구성된다. 그래서 누구나 모듈을 만들 수 있고, 이미 만들어..
리눅스의 기본 에디터인 vim을 다루기 위해선 단축키를 숙지하는 것이 아주 중요하다. 워낙 많아서 다 외우는 것은 거의 불가능하고, 주로 사용할 단축키만 간단히 정리해보려 한다.기본 이동h, j, k, l : 상하 좌우 이동gg : 줄 맨 위로 이동shift + g : 줄 맨 아래로 이동단어, 문장 이동b : 단어의 시작위치로 이동(backward)e : 단어의 마지막 위치로 이동(forward)^ : 문장 맨 앞으로 이동$ : 문장 맨 뒤로 이동줄번호 이동[: + set number] : 줄번호 설정[esc] + [:] + [줄번호] : 원하는 줄번호로 이동편집i : 현재 커서가 위치한 문자 앞에 insertdd : 커서가 위치한 줄 삭제dw : 커서의 위치부터 단어의 마지막까지 삭제x : 커서가 위치..