You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Aaron J. Milius cf075fc8ed library update (1770129) on Fri Jul 9 04:56:51 PM CEST 2021 3 years ago
CAStore library update (1770129) on Fri Jul 9 04:56:51 PM CEST 2021 3 years ago
_data library update (2fca6d5) on Wed Jun 30 10:48:03 PM CEST 2021 3 years ago
bin library update (1770129) on Fri Jul 9 04:56:51 PM CEST 2021 3 years ago
docs library update (1770129) on Fri Jul 9 04:56:51 PM CEST 2021 3 years ago
images library update (d4c8a3d) on Thu Jul 1 06:00:38 AM CEST 2021 3 years ago
lib@d4bea95cde library update (1770129) on Fri Jul 9 04:56:51 PM CEST 2021 3 years ago
nodes library update (1770129) on Fri Jul 9 04:56:51 PM CEST 2021 3 years ago
salts library update (1770129) on Fri Jul 9 04:56:51 PM CEST 2021 3 years ago
secrets library update (1770129) on Fri Jul 9 04:56:51 PM CEST 2021 3 years ago
t library update (1770129) on Fri Jul 9 04:56:51 PM CEST 2021 3 years ago
txpool library update (1770129) on Fri Jul 9 04:56:51 PM CEST 2021 3 years ago
.gitattributes library update (0d8920d) on Tue Jun 22 11:01:00 PM CEST 2021 3 years ago
.gitignore library update (d4c8a3d) on Thu Jul 1 06:00:38 AM CEST 2021 3 years ago
.gitmodules library update (84342cb) on Thu Jun 24 07:56:47 AM CEST 2021 3 years ago
INSTALL.md added an INSTALL .md file and misc... 3 years ago
README.md library update (1770129) on Fri Jul 9 04:56:51 PM CEST 2021 3 years ago
config.yml library update (1770129) on Fri Jul 9 04:56:51 PM CEST 2021 3 years ago
config0.yml library update (d4c8a3d) on Thu Jul 1 06:00:38 AM CEST 2021 3 years ago
curltest.sh library update (8a8f4a6) on Thu Jul 8 11:50:36 AM CEST 2021 3 years ago
eckeygen.pl added test for hashcash and starting signatures 3 years ago
execution-notes.md added first files and design notes 3 years ago
init.sh added transaction signatures 3 years ago
install.sh library update (2fca6d5) on Wed Jun 30 10:48:03 PM CEST 2021 3 years ago
local.key.asc library update (d4c8a3d) on Thu Jul 1 06:00:38 AM CEST 2021 3 years ago
modules.deps added -w to perl testing.pl 3 years ago
post.sh added an INSTALL .md file and misc... 3 years ago
project.mbox added symetric key to unlock protected files 3 years ago
rc.sh setting PATH in rc.sh 3 years ago
testapi.pl library update (2fca6d5) on Wed Jun 30 10:48:03 PM CEST 2021 3 years ago
testing.pl library update (2fca6d5) on Wed Jun 30 10:48:03 PM CEST 2021 3 years ago

README.md

layout
simple

A toy chain

The chain should have these properties:

  • Running on at least 2 pre-defined nodes (IP addresses given in a config file / no additional discovery necessary)-
  • PoW, with every node a miner-
  • The difficulty is fixed (i.e., block time is not), each block rewards 100 coins-
  • ECDSA cryptography; addresses may be pure public keys-
  • Protect against double spending
  • Transactions can have additional data payload, signed by the sender (and there needs to be a way to set it)
  • Blocks can have additional data payload (and there needs to be a way to set it)
  • Implement a simple REST-like web service API which implements the following services and returns JSON data:

Example of curl commands

# getting block count
curl http://127.0.0.1:8089/api/0.0/getheight
# getting 4th block
curl http://127.0.0.1:8089/api/0.0/getblock?n=4
# getting transaction Ztxrms5c5oKqb9Zof3xeC5Q2ZQjSaWv7FU4rAxe2s3sP
curl http://127.0.0.1:8089/api/0.0/gettx?txaddr=Ztxrms5c5oKqb9Zof3xeC5Q2ZQjSaWv7FU4rAxe2s3sP
# posting a transaction
cat txpool/tx.yml | sed -e "s/$/%0a/g" | curl -s -X POST http://127.0.0.1:8089/api/0.0/settx -d @-
# processing the txpool (mining)
curl http://127.0.0.1:8089/api/0.0/minepool

Security Warning

Blockchain are transparent and public so we encrypt private keys and other sensitive data, however as it is just a toy, we expose all the files for educational purpose.

** PLEASE DO NOT USE IN A PRODUCTION ENVIRONMENT **

note: sensitive data are encrypted w/ git-crypt; please send us your public key if you need access or ask for a shared DH secret

decrypt can be done with the command :

export GPG_ASKPASS=ssh-askpass
git-crypt unlock
#gpg --decrypt local.key.asc | git-crypt unlock -