仮想通貨アンテナ

仮想通貨 ブロックチェーン情報

ブロックチェーン

python blockchain note-1 blockchain

更新日:

python

モジュール パッケージ サブパッケージ

パッケージパッケージやモジュールを使用する際には、 インポート処理が必要。

クラス

オブジェクト指向

class クラス名 :   クラス名の先頭は大文字

クラス変数とクラス内関数(=メソッド)は4文字下げ

コンストラクタ

オブジェクト生成時に呼び出される特殊なメソッド(コンストラクタ)
  def __init__(
self)

メソッド

# 通常メソッド

def normal_method(self, 引数2, 引数3, …):  self.name = name return name

# クラスメソッド

def class_method(cls, 引数2, 引数3, …): cls.name = cname return cname

オブジェクト

 オブジェクト生成 オブジェクト = クラス() 

 メソッドはの使用 オブジェクト.メソッド()

 Pythonのメソッドは最低1つの引数selfを持つ。

ジェネシスブロックの作成

Github

import hashlib
import json
from time import time
from urllib.parse import urlparse
from uuid import uuid4

import requests
from flask import Flask, jsonify, request


class Blockchain:
    def __init__(self):
        self.current_transactions = []
        self.chain = []
        self.nodes = set()

       # Create the genesis block(ジェネシスブロックの作成 オブジェクト)
        self.new_block(previous_hash='1', proof=100)

ブロック作成メソッド


#新ブロック作成メソッド
def new_block(self, proof, previous_hash):
        """
        Create a new Block in the Blockchain
        :param proof: The proof given by the Proof of Work algorithm
        :param previous_hash: Hash of previous Block
        :return: New Block
        """

        block = {
            'index': len(self.chain) + 1,
            'timestamp': time(),
            'transactions': self.current_transactions,
            'proof': proof,
            'previous_hash': previous_hash or self.hash(self.chain[-1]),
        }

        # Reset the current list of transactions
        self.current_transactions = []

        self.chain.append(block)
        return block
len関数

len 関数は引数に指定したオブジェクトの長さや要素の数を取得

len("Hello")
5
len(["red", "blue", "green"])
3
len({"s":150, "m":160, "l":170, "xl":180})
4

ジェネシスブロック

[{'index': 0, 'timestamp': 1597794565.611749, 'transactions': [], 'nonce': '', 'previous_hash': '1'}]

ビットコインってなに?

2008年11月、metzdowd.comにナカモトサトシにより投稿された論文Bitcoin:A Peer-to-Peer Electronic Cash Systemで定義された仕様とをもとにビットコイン・コミュニティーで開発が続けられる製造と取引に暗号学を使った通貨のことです。

ビットコイン自体は、フリー・ソフトウエアで、ソフトウェア開発のプラットフォームGitHubに登録すれば、ソースやドキュメント閲覧が可能で、開発に参加も可能です。

ナカモトサトシは、2010年12月まで開発に携わっていましたが、その後姿を消しました。日本名ですが、国籍も含め匿名性が高く身元も不明です。

真偽のほどは、不明ですがSBI社長の北尾氏が、2018年3月期第2四半期 SBIホールディングス(株)決算説明会動画の1:29:20頃)でナカモトサトシと議論を交わしたと発言して話題になりました。

ビットコインの仕組み

ビットコインは、P2P型の公開型分散台帳技術(DLT)によって信頼性を担保され運用されるブロックチェーンで結合された暗号通貨(cryptocurrency)のことです。

ビットコインは、P2Pネットワーク上のサーバー上で同一取引情報を持ちコントロールすることで取引の妥当性のチェックが行われるため、銀行など、特定の管理者がいない非中央集権型の仮想通貨と呼ばれています。

ブロックチェーン


GitHub

ブロックチェーンの動き

マイニング

ビットコインは送信アドレス(Tx)に対するデジタル署名によって保護されており、一定時間(10分)ごとに、すべての取引記録を分散台帳に追加します。

その追加処理には、ネットワーク上の分散取引台帳データと、10分間に発生したすべての取引のデータの整合性を取りながら正確に記録することが必要です。

整合性を取る作業は、膨大な計算量が必要となるため専用のハードウエアの計算能力を使って、誰でもが取引を処理することができます。

この手伝いをしてくれた人(膨大な計算処理を行った人)の中で、結果として追記処理を成功させた人には、その見返りとしてビットコインが支払われます。

この作業をマイニングと呼びます。

マイニングには、ソロマイニングとプールマイニングがあり、個人のPCでも余った演算能力でプールマイニングに参加できます。

ジェネシス・マイニングでのハッシュパワー購入

ジェネシス・マイニングは世界最大の高く信頼されたビットコイン クラウド マイニングのプロバイダーです。ハッシュパワー購入時に,コード(kjx2uz)を使用した人は、購入時に3%の割引になります。

ブロックチェーンエクスプローラー

ブロックチェーンアドレスを入力することで、送金状況(confirmation回数の確認)が行えます。

ブロックチェーンエクスプローラー

ブロックチェーンエクスプローラー(chainFlyer)

ビットコイン価格とチャート表示

-ブロックチェーン

Copyright© 仮想通貨アンテナ , 2020 All Rights Reserved.