블록체인/블록체인 개발

[이더리움 블록체인 개발] 블록체인 노드

HHRR 2022. 7. 18. 18:30
개발
  • 리믹스 ; Environment 

Injected Web3 : 메타마스크 계정 사용 

JavaScript VM 설정 : 바로 계정 바뀌는 거 확인 가능

** 신원 바꿔서 다른사람인 척 계약 배포 가능.. 다음 영상

 

  • 가나슈 (외부 노드)

설치 : https://trufflesuite.com/ganache/

 

Home - Truffle Suite

SIGN UP FOR THE TRUFFLE MAILING LIST Sign up today to be a member of the Truffle mailing list. You'll be added to our low volume mailing list which we'll use to communicate future changes, development ideas and allow you to shape Truffle's development.

trufflesuite.com

- 무료 제공자라는 걸로 외부에서 실행되고있는 블록체인에 연결하는 것

- 개발자 블록체인 (브라우저에 있음)

- RPC 서버 주소 : 로컬 호스트 포트 7545에서 실행중, 

  이 RPC 서버는 접속할 수 있고 무료 제공자를 이용 할 수 있음

리믹스; Environment : Web3 Provider -> 가나슈 연결

 

- 리믹스 Environment   : Web3 Provider -> 로컬 호스트 주소 입력(http://localhost:7545)

- 가나슈에 연결 할 수 있음

  Custom 5777 네트워크 생성됨

: 매년 100ETH가 들어있는 계정 10개 제공 -> 바로 스마트 컨트랙트 배포 가능

 

가나슈; 스마트 컨트랙트 배포

- 리믹스; Deploy 클릭하여 스마트 컨트랙트 배포

- 가나슈; TX COUNT : 트랜잭션 수

              첫번째 계정 트랜잭션 만드는데 사용 

가나슈; 블록

- 가나슈; 블록이 있고 트랜잭션이 하나 있는 걸 확인할 수 있음

가나슈; 블록1의 트랜잭션


이론

- 네트워크 : 이더리움 프로토콜과 소통

Main network

- 4개의 노드 연결되어있음

- 블록체인 노드를 시작했는데 다른 블록체인 노드와 연결되어있거나 

 블록체인 노드를 시작했는데 외부,RPC 인터페이스에 연결하려고 함

 => 양쪽 끝에 있는 표준 프로토콜로 노드들은 서로 소통하는 방법 앎 

 

Private Network

- 4개의 노드 서로 소통, 블록체인 네트워크 구성 

 이더리움 노드가 있다는건 아님. 똑같은 네트워크에 연결 해야함 

- 컨소시엄 내에서나 사설 네트워크 안에서 이더리움을 사용할 수 있어서 완전히 분리된 네트워크를 가질 수 있음.

- 이더리움 프로토콜은 똑같지만 메인 네트워크와는 분리됨

  =둘이 같은 데이터를 포함하고 있지 않음

- 부분적으로 메인 테크.

... 이해못함 다시

- main network

: 현존하는 가장 긴 네트워크, 데이터가 거의 안바뀜

 트랜잭션을 전송하면 트랜잭션이 채굴되고 데이터가 영구화됨 -> 블록으로 채굴되는 모든 트랜잭션 변경 불가능함

 Persistent / Real-Blockchain / Costs Money

 

- testnet

: 메인네트워크와 비슷하지만 같진 않음. 기본 데이터가 다름

 테스트를 위해 존재 

 채굴 필요(스마트 컨트랙트 배포할 때 트랜잭션을 어느 네트워크에 보낸다면 채굴될때까지 기다려야함)

 롭스텐은 메인 네트워크의 클론, 테스트 이더 얻어서 스마트계약 작동 확인, 메타마스크에서 바로 테스트넷과 작업 가능

 Persistent, but can be deleted / Real-Blockchain / Beta Release

 

 - 가나슈

: 스마트 계약 개발자들이 자체 블록체인 시뮬레이션 구현 한 것 (이더리움 RPC->가나슈)

 트러플 스위트의 일부

 Unit Testing / Fast / Non-Persistent

 

- 리믹스

 : 리믹스에서만 작업 하려면 자바스크립터 가상머신으로 작업 (메모리 내에서 구현)