목차
1. Network
2. 노드의 통신방식
3. Infura
1. Network
블록체인의 네트워크에서 핵심은 P2P이다.
P2P는 "Peer-to-Peer"의 약자로 중앙 서버에 의존하지 않고 컴퓨터나 장치들이 직접적으로 연결되는 형태를 의미한다.
중앙 서버가 없기 때문에 하나의 노드에 장애가 발생하더라도 전체 시스템에 영향을 미치지 않으며, 정상적으로 작동할 수 있다.
P2P 시스템 특징으로 모든 노드에서 데이터를 공유하기 때문에 거래의 투명성 및 신뢰성이 생기며, 데이터의 수정과 조작이 어렵다.
블록체인 네트워크에서의 각 노드들이 연결되며 데이터를 서로 교환하고 공유한다.
노드는 데이터를 요청하는 Client의 역할을 하면서, 데이터를 응답해 주는 Server의 역할도 할 수 있다.
2. 노드의 통신방식
한 가지의 노드는 대표적으로 3가지 포트를 사용한다.
웹브라우저, 클라이언트 관련된 포트 2가지와 다른 노드와의 연결을 위한 포트이다.
- 웹브라우저, 클라이언트는 HTTP 통신과, WS통신을 이용한다.
- 다른 노드와의 상호작용을 위한 TCP 통신을 이용한다.
3. Infura
일반적으로 블록체인 네트워크의 데이터를 얻기 위해서 노드와 통신을 하여 데이터를 얻어와야 한다.
노드와 통신을 하기 위해서는 내가 해당 노드와 커넥션을 해야 하고 커넥션을 하기 위해서는 그 노드에 대한 정보가 있어야 하는데, 이미 네트워크에 포함되어 있는 노드에 접근은 쉽지 않다.
그래서 각 프로그래밍 언어로 만들어져 있는 기본적인 노드를 구성하는 코드를 이용해서 내가 직접 네트워크의 참여자가 되는 방법이 있다.
내가 노드를 구성해서 네트워크의 다른 노드들과 sync를 맞춰서 내 클라이언트에서 내 노드로 접근해서 데이터를 얻는 방법이 제일 일반적인 방법이지만 이 방법에 가장 큰 문제점은 동기화하는 데 걸리는 시간이다.
현재까지 비트코인이든 이더리움이든 블록이 많이 생성되어 있는데, 네트워크의 각 노드는 체인형태의 블록들을 다 가지고 있다. 내가 만든 노드도 네트워크에 참여하면서 공유되고 있는 블록들을 똑같이 동기화해야 하는데 동기화하는 과정에서 많은 시간과 비용이 든다.
이런 비용과 시간을 아끼기 위해서 infura라는 서비스를 이용할 수 있다.
Infura에 API요청을 통하여 블록체인 네트워크의 정보를 얻을 수 있기 때문에, 직접 노드를 관리하는 번거로움 및 비용을 줄이고, 네트워크에 조금 더 쉽게 접근할 수 있다.
'💠BlockChain💠' 카테고리의 다른 글
블록체인 - P2P 네트워크 (0) | 2023.05.09 |
---|---|
블록체인 - 지갑 프로그램 만들기 (0) | 2023.05.09 |
블록체인 - 트랜잭션 만들기 (3) (0) | 2023.05.04 |
블록체인 - 지갑만들기, 코드 리팩토링 및 블록체인 구현 (0) | 2023.05.04 |
블록체인 - 트랜잭션 만들기(2), UTXO (1) | 2023.05.02 |
댓글