Hyperledger Besu : Apach 2.0 라이센스와 자바로 개발된 오픈소스 Ethereum 클라이언트이다.
JAVA를 기반으로 개발된 오픈 소스 이더리움 클라이언트
→ 이더리움은 중앙 집중형 서버 프로그램이 따로 존재하지 않고, 오로지 클라이언트 프로그램만 존재.
작업 증명(Ethash), 권위 증명(IBFT2.0, Clique, QBFT) 등 여러 합의 알고리즘을 구현
프라이버시, 허가 등 기업에 맞는 기능을 지원
Besu는 Ethereum 네트워크에서 실행, 유지, 디버깅 및 노드들의 모니터링을 할 수 있는 커맨드라인 인터페이스와 JSON-RPC API를 포함하고 있다.
Besu는 Truffle, Remix, web3js와 같은 툴들을 사용해서 common smart contract, dapp development, delpoyment, 그리고 operational use cases를 지원한다. 또한 eth,net,web3,debug 및 miner 와 같은 일반적인 JSON-RPC API 메서드를 지원한다.
Besu는 클라이언트 내부에서 키 관리를 지원하지 않는다. Ethsigner를 besu와 함꼐 사용하여 키 저장소에 엑세스하고 트랜잭션에 서명할 수 있다.
EthSigner의 주요 기능 및 특징:
개인 키 보호: EthSigner는 개인 키를 안전하게 보호하고, 암호화된 저장소를 사용하여 개인 키를 저장합니다.
트랜잭션 서명: EthSigner는 개인 키로 트랜잭션을 서명하고 Ethereum 네트워크로 전송하는 작업을 처리합니다.
JSON-RPC 지원: Ethereum 클라이언트와 호환되며 JSON-RPC 프로토콜을 사용하여 Ethereum 네트워크와 상호작용합니다.
다중 네트워크 지원: EthSigner는 여러 Ethereum 네트워크와 연동할 수 있어, 메인넷(Mainnet) 외에도 테스트넷(Testnet) 및 개인 네트워크(Private Network)와 연동할 수 있습니다.
HTTP 및 WebSocket 지원: EthSigner는 HTTP 및 WebSocket을 통해 Ethereum 네트워크에 연결할 수 있습니다.
RESTful API: EthSigner는 RESTful API를 통해 애플리케이션과 상호작용하며, 사용자 정의 설정 및 구성이 가능합니다.
특징:
이더리움 가상 머신 (EVM): 이더리움 블록체인 내에서 스마트 계약을 배포하고 실행하는 데 사용되는 Turing-complete 가상 머신인 EVM입니다. Besu 클라이언트와 함께 또는 독립적인 라이브러리로 사용할 수 있습니다.
튜링 완전한 가상 머신은 알고리즘을 실행하고 모든 계산을 수행할 수 있는 능력을 가지며, 무한한 계산을 처리할 수 있습니다. 이것은 프로그래밍 언어의 제한 없는 계산을 의미합니다. 스마트 계약은 이더리움 블록체인에서 실행되는 프로그램으로, 튜링 완전한 EVM에서 실행될 수 있으므로 복잡한 계산 및 조건부 논리를 처리할 수 있습니다.
합의 알고리즘: Hyperledger Besu는 트랜잭션 및 블록 유효성 검사 및 블록 생성과 관련된 다양한 합의 알고리즘을 구현합니다.
a. 스테이크 형태의 증명 (PoS): 합의 클라이언트와 함께 Besu를 사용하여 Ethereum 메인넷 스테이크 형태의 증명에 연결하고 참여할 수 있습니다.
b. 권한 증명 (PoA): Hyperledger Besu는 참가자들이 서로를 알고 서로 사이에 신뢰 수준이 있는 경우에 사용되는 여러 권한 증명 프로토콜을 구현합니다. 예를 들어 권한 부여된 컨소시엄 네트워크에서 사용됩니다.
c. QBFT: QBFT는 비공개 네트워크용으로 권장되는 기업급 합의 프로토콜입니다. QBFT 네트워크에서는 승인된 계정인 밸리데이터가 트랜잭션과 블록을 유효성 검사하며, 밸리데이터들은 차례대로 다음 블록을 생성합니다. 블록을 체인에 삽입하기 전에 밸리데이터의 2/3 이상(67% 이상)이 블록에 서명해야 합니다.
d. IBFT 2.0: IBFT 2.0 네트워크에서는 트랜잭션과 블록이 밸리데이터라고 불리는 승인된 계정에 의해 유효성 검사됩니다. 밸리데이터들은 차례대로 다음 블록을 생성하며, 기존 밸리데이터들은 밸리데이터 추가 또는 제거를 제안하고 투표합니다. IBFT 2.0은 즉시 결정력이 있으며 포크가 없으며 모든 유효한 블록이 주 체인에 포함됩니다.
e. 클리크 (Clique): 클리크는 IBFT 2.0보다 장애 허용성이 높습니다. 클리크는 51% 이하의 밸리데이터 실패를 허용합니다. 반면, IBFT 2.0 네트워크는 블록을 생성하기 위해 밸리데이터의 2/3 이상이 작동해야 합니다. 클리크는 즉시 결정력이 없으며 포크와 체인 재조직에 주의해야 합니다.
작업 증명 (Ethash): 이더리움 클래식에서 채굴 활동에 사용되는 작업 증명 (PoW)입니다.