프로그래밍 농장

RPC(Remote Procedure call)에 대하여 ( geth, parity. . ) 본문

블록체인

RPC(Remote Procedure call)에 대하여 ( geth, parity. . )

Tennessee201 2022. 4. 24.
728x90

RPC란 무엇인가?

-> RPC(Remote Procedure call)이란, 별도의 원격 제어를 위한 코딩없이 다른 주소공간에서 리모트의 함수나 프로시저를 실행 할 수 있도록 해주는 프로세스간 통신이다. 즉, 위치에 상관없이 RPC를 통해 개발자는 원하는 함수를 사용할수있다.

기존에는 프로세스간 통신을 위하여 소켓통신, RPC 같은 방식이나 RPC를 활용한 CORBA, RMI 같은 방식을 많이 사용하였다면 현재는 웹기술의 발달로 인한 SOAP, REST 등과 같은 방식들이 대세를 이루고 있다. 2015년 구글에서는 RPC와 웹기술을 혼합한 gRPC를 처음 발표하였다. 

RPC 모델은 분산컴퓨팅 환경에서 많이 사용되어왔으며, 현재에는 MSA(Micro Software Archtecture)에서 마이크로 서비스간에도 많이 사용되는 방식이다. 서로 다른 환경이지만 서비스간의 프로시저 호출을 가능하게 해줌에 따라 언어에 구애받지 않고 환경에 대한 확장이 가능하며, 좀더 비즈니스 로직에 집중하여 생산성을 증가시킬 수 있다. 


이더리움 계열에서의 코인은 이더리움, 이더리움 클래식. . 등 여러가지가 있다. 위 코인들을 RPC연결을 하여 월렛을 컨트롤 하기 위해서는 core에 접근하여 해당 블록을 syncing 해줘야한다. 

위와같은 과정을 지원해주는 것에 대표적으로 Go-ethereum(geth)와 parity가 있다.

 

Go Ethereum

What is Ethereum? Ethereum is a decentralized platform that runs smart contracts, applications that run exactly as programmed without possibility of downtime, censorship, fraud or third party interference. See our website or read the docs for more infos!

geth.ethereum.org

Geth는 이더리움 재단이 제공하는 공식 클라이언트 소프트웨어로써, Go언어로 개발되었다.

Geth를 처음 시작하면 네트워크 내의 다른 이더리움 클라이언트(=node)에 연결되어 작업을 먼저 시작하고 블록체인의 전체 사본을 내려받게 된다.

Geth는 블록체인의 복사본을 최신상태로 유지하기 위해 끊임없이 다른 노드들와 통신한다. 또한 블록을 채굴하고, 블록체인에 트랜잭션을 추가하고 블록의 트랜잭션을 검증하며 트랜잭션을 실행할 수도 있다. 또한 RPC를 통해 상호작용하 수 있는 API를 노출하여 서버의 역할을 하기도 한다. 


 

Blockchain Infrastructure for the Decentralised Web

Parity Technologies builds core blockchain infrastructure. From Parity Ethereum, the most advanced Ethereum client, to Polkadot, the next-generation interoperable blockchain network.

www.parity.io

Parity는 이더리움 프로토콜의 또 다른 구현체이며, 러스트(Rust) 프로그래밍 언어로 개발되었다. 현재 Parity Inc. 라는 기업에서 운영한다. 이더리움 네트워크에 접속할 수 있는 클라이언트 소프트웨어를 개발하는 길은 누구에게나 열려 있으며, c++, 파이썬 및 다른 언어로 작성된 클라이언트도 존재한다. 


 

728x90

'블록체인' 카테고리의 다른 글

코엑스 IT 박람회 후기  (0) 2022.05.18
DTO(Data Transfer Object) 정의 및 사용 방법  (0) 2022.05.17
솔리디티 mapping [ Solidity ]  (0) 2022.05.16
하이퍼렛저에 대하여  (0) 2022.04.25
CryptoZombies  (0) 2022.04.22