The original JavaScript version can be find in SavjeeCoin of master Savjee .
- Simple proof-of-work algorithm
- Verify blockchain (to prevent tampering)
- Generate wallet (private/public key)
- Sign transactions
- 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/
from src.keyGenerator import generateKeyPair
generateKeyPair(nbits=512, saveDir='./key', mark='my')
generateKeyPair(nbits=512, saveDir='./key', mark='his')
from src.blockchain import Blockchain, Transaction
from src.keyGenerator import loadKeyPair
pySavjeeCoin = Blockchain()
# 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)
print('INFO: START MINING...')
pySavjeeCoin.minePendingTransactions(myPublicKey)
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)))