Skip to main content

A simple blockchain package.

Project description

https://travis-ci.org/zshvvhm/tinyblock.svg?branch=master https://coveralls.io/repos/github/zshvvhm/tinyblock/badge.svg https://img.shields.io/pypi/v/tinyblock.svg https://img.shields.io/pypi/l/tinyblock.svg https://img.shields.io/pypi/pyversions/tinyblock.svg

Installation

Install and update using pip:

$ pip install tinyblock

Block

dict({'previous_hash'(str): '...',
      'timestamp'(int): '...',
      'data'(any): '...',
      'nonce'(int): '...',
      'next_hash'(str): '...'})

Usage

  • Define a simple blockchain:

    from tinyblock import tinyblock
    #The initial variable should be a list of blocks. If not set it, the default chain would be an empty list.
    my_blockchain = tinyblock()
  • Add a block to the chain:

    #The parameter is the data of this block
    my_blockchain.add('This is a block.')
  • Find a block with statement:

    #Find the blocks with features below. The return elements will content the index in origin chain list.
    #Completely match: previous_hash, nonce, next_hash.
    #Partly match: data. (Currently support str, int, float, list, dict, bool and tuple)
    #Range match: timestamp.(Could be an int, list or tuple)
    my_blockchain.find(previous_hash='', timestamp='', data='', nonce='', next_hash='')
  • Pop the last block of the chain:

    my_blockchain.pop()
  • Check wether the blockchain is anything correct:

    my_blockchain.chainCheck(print_option=True)
  • Fix the blockchain(with start and stop index):

    my_blockchain.chainFix(start=0, stop=4)
  • Get the block list:

    my_blockchain.getChain()
  • Customise the rule for mining new block:

    #The default rule is hash start with '0000'.
    #To change the rule, you can override the mineRule function.
    def newRule(hash):
        if hash[0:5] == '0'*5:
            return True
        return False
    
    my_blockchain.mineRule = newRule

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tinyblock-0.2.0.tar.gz (4.0 kB view details)

Uploaded Source

Built Distribution

tinyblock-0.2.0-py2.py3-none-any.whl (6.1 kB view details)

Uploaded Python 2Python 3

File details

Details for the file tinyblock-0.2.0.tar.gz.

File metadata

  • Download URL: tinyblock-0.2.0.tar.gz
  • Upload date:
  • Size: 4.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for tinyblock-0.2.0.tar.gz
Algorithm Hash digest
SHA256 ebfc13d44d3b56560bc2c2e869e05e8319f61c010f2789d22863a12a0d7b9f17
MD5 83e8a0ce5b1c122155534978361d897e
BLAKE2b-256 f605e9ba7fca7e2886d3841f7d54b635c571b237f31e3e0488c5b6f6c0b22921

See more details on using hashes here.

File details

Details for the file tinyblock-0.2.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for tinyblock-0.2.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 d90da78a1aade97e05cf675f08c32b5f671dc433a095eea14f3283cf8b29837c
MD5 9312ec541beba517a29f584b5db5621a
BLAKE2b-256 a1fcfa11420d5bd4199c66b6ead1ff6bc37329a673237a8017485964943c1837

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page