Top




本家

Blockchainの構築

offline.py

import hashlib

import json

import http.server

import socketserver

import time

from datetime import datetime

import concurrent.futures

import requests

import random

def _gen_block(arg):
  source_host, data, prev_hash = arg

  now = time.time()
  loc = datetime.fromtimestamp(now)
  timestamp = loc.timestamp()
 
  while True:
    nonce = random.randint(0, 100000000000000) 
    block = { \
      'timestamp':timestamp, \
      'source_host':source_host, \
      'data':data, \
      'prev_hash': prev_hash,  \
      'nonce':nonce,
    }
    next_hash = hashlib.sha256(bytes(json.dumps(block),'utf8')).hexdigest()

    # 先頭のN字が"0"ならば、採用
    size = 1
    if next_hash[:size] == '0'*size:
      break
  open(f'cache/{next_hash}', 'w').write( json.dumps(block, indent=2, ensure_ascii=False) ) 
  print(next_hash)
  print(block)
  return block, next_hash

start_block, next_hash = _gen_block(('http://localhost:1200', 'Ground Zero', hashlib.sha256(bytes('0', 'utf8')).hexdigest()))
for line in open('stash/kokoro.txt'):
  line = line.strip()
  block, next_hash = _gen_block(('http://localhost:1200', line, next_hash) )

git clone https://github.com/GINK03/python-block-chain.git
で本家からインストールして下さい。

46行目の

Ground Zero
を自分の名前等に書き替えて下さい。

47行目の

stash/kokoro.txt
をブロックチェーンを構築したい[パス/ファイル]に書き替えて下さい。デフォルトではファイルはANSICODEで保存して下さい。UTF-8を扱う場合は
'stash/kokoro.txt'
の後ろに
, encoding='utf-8'
を追記して下さい。

webserverにアップロードする場合は46行目と49行目の

http://localhost:1200
を自サイトのURL:ポート番号に書き替えて下さい。

offline.py
と同じ階層でコマンドラインから
python offline.py
でブロックチェーンの構築

verify

phyllis.py


import json

#while True:

cor = '00ce7c3a81315250d7abc2d99f177b2ffb442334644044ea89f1d6e435845d86'

while True:
  obj = json.load( open(f'cache/{cor}') )
  prev_hash = obj['prev_hash']
  data = obj['data']
  print( data )

  if data == 'Ground Zero':
    break
  cor =  prev_hash

6行目の

'00ce7c3a81315250d7abc2d99f177b2ffb442334644044ea89f1d6e435845d86'
の値を
offline.py
で構築した時の最後に導き出される値に変更して下さい。

14行目の

Ground Zero
offline.py
でブロックチェーンを構築した時の46行目を同じ文字列にして下さい。

python phyllis.py
で書き換えた値(名前等)が表示されればOK!!GOOD HACK TO LIFE FOR U!!

あ、そうそう言い忘れたけどブロックチェーンを構築する画像等に自分の名前入れときや。

信用できるサイトにブロックチェーンを構築して下さい。

証明書

雛形

Certificate Authority is 証明機関名
File Name is ファイル名
cor is 値
Date is 日時
Finger Print is 拇印

If you want to transfer ownership, please stamp the two thumbprints.

ブロックチェーンQRコード

KUMO-of-Organization