🔷 데이터 분산 처리 기술
🔷 작동 원리
P2P 방식
으로 전 세계 여러 컴퓨터에 복사하여 분산 저장&관리💡 P2P
Peer to Peer의 줄임말로 중앙 서버를 거치지 않고 클라이언트 컴퓨터끼리 직접 통신하는 방식을 통칭한다. 일반적으로 컴퓨터의 쌍방향 파일 전송 시스템을 가리키지만 P2P라고 해서 꼭 파일 전송에 쓰이는 것은 아니다.
🔷 노드(node)
마이너(miner)
라고 칭한다.💡 코인에서의 채굴이 바로 이 노드에서 블록체인을 채굴하는 것이다. 비트코인의 블록 하나에는 평균 약 1,800개의 거래 정보가 포함될 수 있으며, 블록 하나의 물리적인 크기는 평균 0.98Mbyte이다.
🔷 블록 해시(Hash of the block)
🔷 블록 헤더(Header)
1. Version
2. Previous block hash
genesis block
이라고 한다.3. Merkle tree root
머클트리(Merkel Tree)
라고 하며, 이 트리의 가장 꼭대기가 Merkle tree root이다.4. Timestamp
5. Difficulty
6. Nonce
🔷 Transaction Counter
🔷 Body
🔷 블록 체인 구성
🌟
geth (Go-ethereum)
를 사용하여 제네시스 블록을 JSON 파일로 만들어 이더리움 사설 테스트 네트워크 노드를 구축해 보자.
🔷 사설 네트워크를 구축하기 위해서 제네시스 블록 파일과 블록 데이터 폴더가 필요하다.
💻 Genesis.json
{
"config": {
"chainId": 921,
"homesteadBlock": 0,
"eip150Block": 0,
"eip155Block": 0,
"eip158Block": 0
},
"difficulty": "0x10",
"coinbase": "0x0000000000000000000000000000000000000000",
"gasLimit": "9999999",
"alloc": {},
"extraData": "",
"nonce": "0xdeadbeefdeadbeef",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"timestamp": "0x00"
}
제네시스 블록
: 가장 먼저 생성되는 블록geth(Go-ethereum)
: 이더리움 오픈소스🔷 제네시스 블록 파일을 Geth를 다운로드 받은 경로에 넣고 cmd창을 연다.
🔷 블록체인 저장 경로를 따로 만들어준다.
mkdir c:\test_blockchain
🔷 블록체인 저장 경로 안에 제네시스 블록 파일을 넣고 명령어를 실행한다.
geth --datadir c:\test_blockchain\ init c:\test_blockchain\Genesis.json
🔷 지정한 폴더 내에 다음과 같은 폴더가 생긴다.
🔷 계정을 새로 생성하고 비밀번호를 새로 입력해준다. 비밀번호를 두번 동일하게 입력한다.
geth account new --datadir c:\test_blockchain
🔷 명령어를 활용하여 생성된 계정 정보를 볼 수 있다.
geth account list --datadir c:\test_blockchain