일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 알고리즘
- 블록체인개발
- smart contract
- Ethereum
- node js
- 주소
- 마스터링비트코인
- solidity
- 마스터링 비트코인
- js
- javascript
- python
- 문자열
- 레디스
- 개인키
- 개발
- 블록체인
- 공개키
- Redis
- 이더리움
- 스마트컨트랙트
- 파이썬
- 비트코인
- 솔리디티
- keras
- 암호화폐
- DAPP
- 백서
- 마스터링 이더리움
- pythonic
- Today
- Total
개발이야기
[마스터링 이더리움] Mastering Ethereum - Clients 본문
Ethereum Clients
Ethereum client란?
- 이더리움 사양을 구현하고 다른 이더리움 클라이언트와 P2P 네트워크를 통해 통신하는 소프트웨어 응용 프로그램
- 서로 다른 클라이언트가 다른 팀과 다른 프로그래밍 언어로 구현되는 동안 이들은 모두 동일한 프로토콜을 따른다. 따라서 모두 동일한 이더리움 네트워크를 운영하고 상호작용하는데 사용될 수 있다.
- 이더리움은 오픈 소스 프로젝트이며 모든 주요 고객을 위한 소스코드는 오픈 소스 라이센스에서 무료로 사용할 수 있다.
- 이더리움은 일반적으로 다른 블록체인보다 네트워크에서 실행되는 구현의 다양성이 더 크다.
Ethereum network
- Ethereum 기반 네트워크는 Ethereum, Ethereum Classic, Ella, Expanse, Ubiq, Musicoin 및 기타 여러 네트워크가 있다.
- 이더리움 네트워크는 대부분 프로토콜 수준에서 호환된다, 하지만 이더리움 네트워크는 이더리움 클라이언트 소프트웨어의 관리자에게 각 이더리움 네트워크들을 지원하기 위해 이더리움 네트워크에 작은 변화를 요구할 수 있다.
따라서, 이더리움 클라이언트 소프트웨어의 모든 버전이 이더리움 블록체인상에서 돌아가는 것은 아니다.
* 이더리움 프로토콜의 6가지 기본 구현
- Parity, written in Rust
- Geth, written in Go
- cpp-ethereum, written in C++
- pyethereum, written in Python
- Mantis, written in Scala,
- and Harmony, written in Java.
전체 노드를 실행해야하는가?
- 전체 노드를 실행하면 하드웨어 리소스 및 대역폭 비용이 발생한다. 또한 80GB이상의 데이터를 다운받아야 하며 로컬 하드 드라이브에 저장해야한다. 새로운 트랜잭션 및 블록이 추가되면서 부담이 상당히 빠르게 증가한다.
- 이더리움 개발에는 전체 노드가 필요하지 않다,ganache와 Infura와 같은 서비스 공급자가 제공하는 클라우드 기반 이더리움 클라이언트로 거의 모든 작업을 수행할 수 있다
풀노드의 장점과 단점
장점
- Ethereum 기반 네트워크의 탄력성과 검열력을 지원합니다.
- https://www.quora.com/What-does-censorship-resistance-mean-in-the-context-of-blockchain
- 모든 트랜잭션을 신뢰할 수있는 것으로 검증합니다.
- 중개인이없는 공개 블록 체인의 모든 계약과 상호 작용할 수 있습니다.
- 중개자없이 공개 블록 체인에 직접 계약을 전개 할 수 있습니다.
- 블록 체인 상태 (계정, 계약서 등)를 오프라인으로 질문(읽기 전용)할 수 있습니다.
- 제 3자가 읽은 정보를 알리지 않고 블록 체인을 질문할 수 있습니다.
단점
- 중요한 하드웨어 및 대역폭 리소스가 필요합니다.
- 처음 시작할 때 완전히 동기화되기까지 며칠이 걸릴 수 있습니다.
- 유지 관리, 업그레이드 및 동기화 상태를 유지해야합니다.
공공 Testnet의 장점과 단점
장점
- 테스트 네트워크 노드는 네트워크에 따라 10GB 이하의 적은 양의 데이터를 동기화하고 저장합니다.
- 테스트 넷 노드는 몇 시간 내에 완전히 동기화 될 수 있습니다.
- 계약을 하거나 거래를 할때는 가치가 없는 테스트 이더가 필요하며 여러 "Faucet"에서 무료로 얻을 수 있습니다.
단점
- testnet에서 "실제"돈을 사용할 수 없으며 테스트 이더를 사용합니다. 실질적으로 위험에 대한 보안을 테스트 할 수는 없습니다.
- public blockchain에는 testnet에서 실제로 테스트 할 수 없는 몇 가지 측면이 있습니다. 예를 들어, 거래 수수료인 가스가 필요하지만 테스트 네트워크에서는 무료이므로 고려하지 않아도 됩니다, 또한, 테스트 넷은 네트워크가 혼잡하지 않습니다
로컬 블록 체인 시뮬레이션 장점 및 단점
Ganache (이전의 testrpc)는 가장 많이 사용되는 로컬 블록 체인 시뮬레이션 중 하나이며, 공용 testnet의 장점과 단점을 많이 공유하지만 차이가 있다.
장점 :
- 동기화가 필요없고 디스크에 데이터가 거의 없습니다. 첫 번째 블록을 직접 채굴해야합니다.
- 테스트 이더를 얻을 필요가 없습니다. 테스트를 위해 사용할 수 있는 보상을 받아야 합니다.
- 다른 사용자는 없습니다.
- 시작한 후에 배포된 계약만 존재한다. 다른 계약은 없다
단점 :
- 다른 사용자가 없다는 것은 공용 블록 체인과 동일하게 작용하지 않는다는 것을 의미합니다. 거래 공간 또는 거래 순서에 대한 경쟁은 없습니다.
- 공개 블록 체인에서 발생하는 일부 시나리오를 테스트 할 수 없습니다.
- 다른 계약이 없다는것은 종속성 및 컨트랙트 라이브러리를 포함하여 테스트하려는 모든 것을 본인이 배포해야한다는 뜻이다.
- 일부 시나리오 (예 : DAO 계약)를 테스트하기 위해 공개 컨트랙트 및 그들의 주소 중 일부를 다시 작성할 수 없습니다.