Giter VIP home page Giter VIP logo

pysavjeecoin's Introduction

Project logo

pySavjeeCoin

License Passing SHA-256

Original Version

The original JavaScript version can be find in SavjeeCoin of master Savjee .

Features

  • Simple proof-of-work algorithm
  • Verify blockchain (to prevent tampering)
  • Generate wallet (private/public key)
  • Sign transactions

Installation

  • Get the repository with git:
git clone https://github.com/yuanmingqi/pySavjee.git
  • Install the packages from PYPI:
pip install -r requirements.txt -i https://pypi.org/simple/ 

Get Started

Generate a keypair

from src.keyGenerator import generateKeyPair

generateKeyPair(nbits=512, saveDir='./key', mark='my')
generateKeyPair(nbits=512, saveDir='./key', mark='his')

Create a blockchain instance

from src.blockchain import Blockchain, Transaction
from src.keyGenerator import loadKeyPair

pySavjeeCoin = Blockchain()

Adding Transactions

# Load keypair
myPublicKey, myPrivateKey = loadKeyPair('./key', mark='my')
hisPublicKey, hisPrivateKey = loadKeyPair('./key', mark='his')

print('INFO: MY PUBLIC KEY IS {}'.format(myPublicKey))
print('INFO: HIS PUBLIC KEY IS {}'.format(hisPublicKey))

tx1 = Transaction(myPublicKey, hisPublicKey, 10)
tx1.signTransaction(myPublicKey, myPrivateKey)
pySavjeeCoin.addTransaction(tx1, myPublicKey)

Mining the block

print('INFO: START MINING...')
pySavjeeCoin.minePendingTransactions(myPublicKey)

Get the balance and check the chain

tx2 = Transaction(myPublicKey, hisPublicKey, 20)
tx2.signTransaction(myPublicKey, myPrivateKey)
pySavjeeCoin.addTransaction(tx2, myPublicKey)
print('INFO: START MINING...')
pySavjeeCoin.minePendingTransactions(myPublicKey)

print('INFO: BALANCE OF {} is {}'.format(myPublicKey, pySavjeeCoin.getBalanceAddress(myPublicKey)))

print('INFO: THE CHAIN IS VALID? {}'.format(pySavjeeCoin.isChainValid(myPublicKey)))

pysavjeecoin's People

Contributors

thisismywing avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.