[댄] EOS 초당 거래 처리속도(tps)에 대한 댄의 답변
현재 EOS의 초당 처리속도(tps)는 느린 인터프립터에서 1000 tps 이상이다.
JIT 에서 3000 tps 이상이다.
인터프립터는 한 줄 단위로 프로그램을 실행해주는 프래그램입니다. 인터프립터는 일반적으로 줄단위로 실행하여 속도가 느리다.
JIT 컴파일러는 미리 바이트코드(bytecode)로 번환된 프로그램을 컴파일하여 실행하는 방법으로 속도가 빠르다.
with context-free-actions these proofs can be performed in parallel
context-free-actions으로, 이러한 (익명거래의)증명은 병렬로 수행 될 수있다.
서명(signature)와 같이 병렬로 계산할 수 있는 일을 Context Free Actions이라고 부른다. 아래는 EOS 백서에서 이에 대한 설명이다.
https://github.com/EOSIO/Documentation/blob/master/TechnicalWhitePaper.md#context-free-actions
Context Free Action은 거래에 있어서, 블록 체인의 상태(state)는 의존하지 않는 계산을 말한다. 즉, 서명 확인(Signature verification)이 이에 해당한다. 서명확인은 가장 비싼 개별 계산 중 하나이지만이 계산은 컨텍스트가 없으므로 병렬로 수행할 수 있다.
하지만, 현재 EOS는 단일 쓰레드로 동작하고 있습니다.
아래는 Dawn 3.0의 설명에 나온 내용을 정리한 것입니다.
- WASM 인터프립터(binaryen) + 싱글 쓰레드 + 서명검증 : 1000+ tps
- WASM JIT + 싱글쓰레드 + 서명 검증: 3000+ tps
- WASM JIT + 싱글쓰레드 + 서명 검증 없음: 6000+ tps ( 멀티 쓰레드에서 서명검증 시간은 거의 없기 때문에 멀티 쓰레드 환경을 서명 검증이 없는 싱글 쓰레드로 시뮬레이션했음)
- WASM JIT + 싱글쓰레드 + 서명 검증 없음 + 네트워크 코드 없음: 8000+ tps
Dawn 3.0 링크: https://goo.gl/oRfHiB