라이트 노드가 필요로 하는 커맨드가 또 하나 있습니다. 풀 노드에게 관심 트랜잭션이 포함된
머클블록을 요청하는 커맨드입니다. 이는
getdata
메시지를 통해서 이루어집니다.
getdata
는
블록이나 트랜잭션을 전송하게 하는 커맨드인데, 요청하는 데이터의 유형
data
type
정보를 함께
보냅니다. 이때 라이트 노드가 풀 노드에게 요청하는
getdata
안의 데이터의 유형은
filtered
block
입니다.
filtered
block
유형은 풀 노드에게 블룸 필터를 통과한 트랜잭션을 머클블록의
형태로 전송할 것을 요청합니다. 즉, 라이트 노드는 풀 노드에게 블룸 필터를 통과한 트랜잭션으
로 머클블록을 구성하도록 요청합니다.
getdata
메시지의 페이로드는 [그림
12
-
5
]처럼 파싱됩
니다.
그림
12-5
getdata
메시지의 페이로드 파싱
첫 번째 필드(
Number
of
data
items
)는
varint
형식으로 요청하는 항목의 개수를 지정합니
다. 이후 각 항목은 유형(
Type
of
data
item
)과 항목을 특정하도록 하는 해시 식별자(
Hash
identifier
)으로 구성됩니다. 유형
1
은 요청하는 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month, and much more.