on
이더리움에서 거래가 이루어지는 과정
이더리움에서 거래가 이루어지는 과정
개요
이 포스트에서는 이더리움 네트워크에서 어떻게 신뢰 기반의 거래 처리가 이루어지는지 설명하겠습니다.
거래를 처리하는 주체는 이더리움 네트워크에 존재하는 참여자 노드이므로 이더리움 노드의 유형과 역할에 대한 이해가 필요하신 분은 이 링크를 간단히 훑어 보시길 추천드립니다.
이더리움 노드의 기능
이더리움 노드는 클라이언트 기능과 블록체인 데이터베이스로 구성되어 있습니다.
클라이언트 기능
프로세스 : 수신된 메시지와 거래 내역을 EVM에게 보내거나 메모리 풀에 저장하고 검색합니다. 수신된 블록을 처리하고 로컬에 복사본을 추가 합니다.
EVM : 스마트 컨트랙트를 실행합니다.
메모리 풀 : 수신한 거래 내역을 저장합니다.
JSON-RPC API : 외부 노드가 이 API를 통해 커뮤니케이션 합니다.
블록체인 데이터베이스
거래 내역, 스마트 컨트랙트의 바이트코드 및 상태를 저장하고 있습니다.
채굴 노드가 15초 마다 새로운 블록을 추가합니다.
거래 프로세스
풀 노드와 채굴 노드의 클라이언트 기능을 통해 거래 내역이 처리되어 아래와 같은 순서를 통해 블록체인 데이터베이스에 저장됩니다.
첫번째로 JSON-RPC로 스마트 컨트랙트에서 함수가 호출되면서 실행됩니다.
풀노드가 거래 내역을 수신하고 메모리 풀에 저장 풀노드가 유효성 검사를 위해 거래 내역 실행 (EVM) 검증된 거래 내역을 피어 노드로 전달. 미검증 거래 내역 페기. 채굴 노드가 거래 내역을 메모리 풀에 저장하고 수익성 높은 거래 내역 선택. 채굴 노드가 EVM 에서 실행 후 새 블록에 거래 내역 추가. 채굴 노드가 처리 완료된 거래 내역을 메모리 풀에서 제거하고 피어 노드로 전파. 풀 노드가 새로운 블록을 수신 후 유효성 검사를 위해 거래 내역 실행 (EVM) 검증이 완료된 거래 내역을 메모리 풀에서 제거하고 피어 노드로 거래 내역을 전파.
from http://code-on-ethereum.tistory.com/12 by ccl(A) rewrite - 2021-11-17 23:27:08