본문 바로가기

white paper

EOS.IO DAWN 2.0 released & development update

원작 : 2017년 12월 5일 steemit.com


EOS.IO Dawn 2.0이 block.one팀이 관리하는 공개 테스트 네트워크상에 공개 됐다. 이번 공개는 2017년가을 로드맵에 설명되는 남은 부분의 대부분과 2017년 12월 21일에 완료하고자 하는 목적의 대부분을 구현한 알파버전을 제공한다.

로드맵에서도 언급했듯이 2차-최소생존가능테스트네트워크는 2017년 가을에 다음의 내용을 시연 했다.


- P2P 네트워크 코드

- Wasm( web assemble ) 보완

- 자원 사용 추척 및 비율 한계

- 최초 블록 입수 테스트

- 블록체인 간 통신


이때, 이러한 기능의 대부분을 최초 구현했다. 어쨌거나, 최초의 테스트네트워크와 연동할 수 없는 분리된 가지 블록체인간 통신의 구현의 병렬 개발 진행에 따라 구현했다.


이러한 EOS.IO Dawn 2.0 버전의 성능테스트에 대한 관심은 모든 블록체인과 개별네트워크를 작동시키고 진수시키기 위한 네트워크코드는 Github repository에서 찾을 수 있다. 우리의 내부 테스트는 초당 수천건의 트랜스퍼를 처리할 수 있음을 보였고 이는 평균적인 하드웨어의 단독스레드상에서 1초단위 블록으로 처리됐다. 이것은 알려진 우리가 구현하지 않은 솔루션인 공격벡터로 알려진것을 이야기 한다. 예를 들어, 새로운 계약을 처음 컴파일할때 34초가 소요된다. 만약 악용된다면 거래율이 30TPS를 넘을때 네트워크가 분열 될 수 있다.


이러한 이슈에 대한 우리의 솔루션은 계약 코드가 업데이트되는 주기에 대한 한계를 두는 것이다. 또한 코드 업데이트와 새로운 코드의 사용간의 간격에 대한 연장시간을 두는 것이다. 이 연장시간은 60초 간격이 될것이다. 이것은 모든 BP(블록프로듀서)가 WASM으로 부터 x86 장비에서 컴파일하는 시간을 제공하게 될것이다.


이러한 눈에 띄는 공격벡터는, 사설 네트워크에서 성능 테스트가 아직 남아 있지만 하지만 기능테스트는 업데이트와 접근을 확보해주는 인위적인 40TPS로 한정된 공개 테스트 네트워크에서 지금 수행 될 수 있다. 


우리의 다음 6개월은, 아마도 지속적인 테스트와 디버깅, 네트워크를 안정적이고 성능개량에 따른 개선으로 지속될 것이다.


Dawn 2.0의 새로운 기능


Genesis 입수 테스팅


이더리움 네트워크에서 나누어준 EOS ERC-20 토큰을 기준으로하는 최초 상태를 입수하기 위한 스냅슛 도구를 개발했다. 우리의 실험 네크워크는 적절한 EOS 키로 등록된 잔고를 포함할 것이다. 약 20%의 ERC-20토큰이 EOS 공개 키로 등록됐다. 우리의 스냅샷 도구는 사인된 이더리움 트랜젝션으로 부터 공개키를 복구할수 있는 이더리움 계정에 묶여 있는 모든 등록되지 않은 ERC-20 토큰에 대한 대체 툴을 제공합니다. 이것으로 99%의 모든 EOS ERC-20토큰을 처리하지만 당신의 이더리움 개인키를 EOS.IO지갑에 입수할 필요는 있습니다.


보안 목적에 있어, 우리의 테스트 네트워크는 사용자에게 그들의 이더리움 개인키를 대체 프로세스를 통해 복구하라고 요청하지 않습니다. 만약 당신의 EOS 개인키가 테스트 도중 잘못된다면 언제든지 이더리움 네트워크에서 새로운 키를 등록할 수 있습니다.


토큰 수도꼭지


우리는 토큰을 소유하고 있지 않거나 아직 적절한 EOS 공개키를 등록하지 않는 사용자를 위해 네트워크를 테스트할 수 있도록 "수도꼭지"를 통해 토큰을 제공합니다.


자원 사용 & 비율 제한


우리는 기본비율제한과 자원사용추적기능을 제공합니다. 이것은 대역폭, 저장소, 계산용량을 추적합니다. 동시에 여기에는 비율제한 알고리즘부분에서 알려진 몇몇 버그가 존제합니다. 하지만 어플리케이션의 테스트와 개발 인터페이스에 문제를 야기하지 않습니다.


우리는 많은 사람이 어떻게 비율제한이 작동하는지에 대한 보다많은 정보를 물어왔음을 알고 있습니다. 누구에게 청구되는지 그리고 어떻게 그들이 그들의 소유 토큰을 수익을 내기위해 빌려줄수 있는지에 대하여 말입니다.


대역폭


모든 트렌젝션은 블록생산자가 설정해 놓은 최대 네트워크 대역폭의 얼마만큼을 사용하게 됩니다. 처리에 대한 권한을 필요로 하는 모든 계정은 그들의 3일 평균 대역폭을 갖습니다. 이 대역폭은 터리의 크기에 기반해서 증가됩니다. 대역폭은 토큰을 확보하기위해서 또는 보유한 토큰을 위임하기 위해서  어플리케이션 제공자에 의해 계정의 권한을 부여할 필요가 있습니다. 


계산용량 (computational bandwidth)


모든 트랜젝션은 얼마만큼의 계산용량을 차지합니다. 계산처리는 병렬로 처리가 가능하고, 그러다 보니 다차선 고속도로처럼 보입니다. 각각의 차선은 개별적인 복잡성을 띄게 됩니다. 각각의 처리 차선은 그들의 독립적인 비율제한과 동시처리 수많큼의 비용을 감수해야 합니다.  대부분의 복잡충돌 처리부분에 기반하여 비율 제한이 걸립니다.


데이터베이스 저장소


EOS.IO 계약은 메모리내의 데이터베이스에 접근합니다. 그곳은 어플리케이션 상태를 저장합니다.(global variable)

계약은 그들이 저장한 데이터용량의 총량과 개별 독립 데이터베이스 엔드리의 합으로 비용청구가 됩니다. 이것은 메모리내부 데이터베이스는 탈중앙 묶음 호스팅과 저장소프로토콜을 사용하는 EOS.IO저장소와 분리된 독립적인 것입니다. 


P2P 네트워크 코드


우리는 메시 네트워크코드의 기본 구현을 마쳤고, 이는 퍼블릭 테스트 네트워크에서 시연되고 있습니다. Block.one은 21개의 독립적인 서버를 운영하고 있으며, 각각은 초기 블록생성자로 설정되어 있습니다.


EOS Dawn 3.0



continue ....












'white paper' 카테고리의 다른 글

FlureeDB White paper  (0) 2018.04.20
EIPs ERC20 standard  (0) 2018.03.15
EOS.IO white paper  (0) 2018.02.13