https://steemit.com/kr/@tpdns90321/1
이 링크가 저번 글인데 내가 읽어도 심각하게 읽기 힘들어서 바로 실전으로 들어가는게 맞다고 생각한다.
그러므로 저번글을 읽지말고 https://homoefficio.github.io/2017/11/19/블록체인-한-번에-이해하기/ 을 읽고 오시기 바랍니다.
지금부터 block과 POW를 간단하게 바로 python으로 구현하겠습니다.
python에서 블록체인 만들려면 일단은 block이라는 객체를 클래스를 통해 만들어야.
아시는분들은 상관없지만 python은 일종의 객체지향언어이다. 그래서 클래스가 있다.
그냥 프로그래밍 필요없고 그냥 기술만 알아간다면 필요없고 컴퓨터 전공 백 퍼센트 확율로 기억하고 써먹고 있을테니 스킵한다.
import hashlib
class Block:
# 초기화(변수를 초기화합니다.)
def __init__(self, index, timestamp, data, previous_hash):
self.index = index
self.timestamp = timestamp
self.data = data
self.previous_hash = previous_hash
self.nonce = 0
self.hash = self.hash_block()
의외로 변수로는 많이 있진 않습니다. 6개 정도... 하지만 저 data 변수가 문제입니다. 저기에 스크립트에다 서명에다 uxto 라든지 많이 들어가거든요.
그럼 블록체인 뭐다?
블록이 이전 블록의 주소가 아닌 해쉬를 가지고 앞에 있는 블록을 증명합니다. 그리고 자기자신도 POW라는 연산 과정을 통해 내가 이게 가짜라면 헛수고아니라고 하면서 스팸이 아니라고 주장할 수 있습니다.
그럼 이제 POW로 가볼까요.
POW는 내일해야 겠네요.
코드 쓰는 것이 너무 불편해서 힘듭니다.
거의 40줄 가까이 썻는데....
죄송합니다.