awesome-blockchain/README.md

378 lines
17 KiB
Markdown
Raw Normal View History

2018-09-24 09:39:16 -04:00
# Awesome Blockchain
2018-09-13 07:23:50 -04:00
[![Awesome](https://awesome.re/badge.svg)](https://github.com/yjjnls/awesome-blockchain)
2018-09-24 09:39:16 -04:00
> Curated list of resources for the development and applications of block chain.
2018-03-29 23:10:11 -04:00
The blockchain is an incorruptible digital ledger of economic transactions that can be programmed to record not just financial transactions but virtually everything of value (by [Don Tapscott](https://www.linkedin.com/pulse/whats-next-generation-internet-surprise-its-all-don-tapscott)).
2018-03-30 00:06:41 -04:00
<font color=#0099ff size=3>**This is not a simple collection of Internet resources, but verified and organized data ensuring it's really suitable for your learning process and uesful for your development and application.**</font>
2018-03-29 23:10:11 -04:00
## Contents
2018-09-13 03:57:43 -04:00
2018-09-24 09:39:16 -04:00
- [Awesome Blockchain](#awesome-blockchain)
- [Contents](#contents)
- [Frequently Asked Questions (F.A.Q.s) & Answers](#frequently-asked-questions-faqs--answers)
- [Basic Introduction](#basic-introduction)
2018-09-24 09:50:03 -04:00
- [Further Extension](#further-extesnsion)
2018-09-24 09:39:16 -04:00
- [Books](#books)
- [Applications](#applications)
- [Identity Applications](#identity-applications)
- [Public Blockchain Identity](#public-blockchain-identity)
- [Blockchain as a collateral](#blockchain-as-a-collateral)
- [Unclear](#unclear)
- [Guidance](#guidance)
- [Internet of Things Applications](#internet-of-things-applications)
- [Energy Applications](#energy-applications)
- [Development Tutorial](#development-tutorial)
- [BitCoin](#bitcoin)
- [Ethereum](#ethereum)
- [Fabric](#fabric)
- [Releated Tools](#releated-tools)
- [Solidity](#solidity)
- [truffle](#truffle)
- [web3.js](#web3js)
- [Projects and Applications](#projects-and-applications)
- [Monero](#monero)
- [IOTA](#iota)
- [EOS](#eos)
- [IFPS](#ifps)
- [Contribute](#contribute)
2018-09-13 03:57:43 -04:00
2018-09-24 09:39:16 -04:00
## Frequently Asked Questions (F.A.Q.s) & Answers
2018-09-13 03:57:43 -04:00
**Q: What's a Blockchain?**
A: A blockchain is a distributed database with a list (that is, chain) of records (that is, blocks) linked and secured by
2018-10-19 03:08:59 -04:00
digital fingerprints (that is, crypto hashes).
2018-09-13 03:57:43 -04:00
Example from [`blockchain.rb`](https://github.com/openblockchains/awesome-blockchains/blob/master/blockchain.rb/blockchain.rb):
2018-10-19 03:08:59 -04:00
```ruby
[#<Block:0x1eed2a0
@timestamp = 1637-09-15 20:52:38,
@data = "Genesis",
@previous_hash = "0000000000000000000000000000000000000000000000000000000000000000",
@hash = "edbd4e11e69bc399a9ccd8faaea44fb27410fe8e3023bb9462450a0a9c4caa1b">,
#<Block:0x1eec9a0
@timestamp = 1637-09-15 21:02:38,
@data = "Transaction Data...",
@previous_hash = "edbd4e11e69bc399a9ccd8faaea44fb27410fe8e3023bb9462450a0a9c4caa1b",
@hash = "eb8ecbf6d5870763ae246e37539d82e37052cb32f88bb8c59971f9978e437743">,
#<Block:0x1eec838
@timestamp = 1637-09-15 21:12:38,
@data = "Transaction Data......",
@previous_hash = "eb8ecbf6d5870763ae246e37539d82e37052cb32f88bb8c59971f9978e437743",
@hash = "be50017ee4bbcb33844b3dc2b7c4e476d46569b5df5762d14ceba9355f0a85f4">,
...
```
2018-09-13 03:57:43 -04:00
![](Basic/img/blockchain-jesus.png)
**Q: What's a Hash? What's a (One-Way) Crypto(graphic) Hash Digest Checksum**?
A: A hash e.g. `eb8ecbf6d5870763ae246e37539d82e37052cb32f88bb8c59971f9978e437743`
is a small digest checksum calculated
with a one-way crypto(graphic) hash digest checksum function
e.g. SHA256 (Secure Hash Algorithm 256 Bits)
from the data. Example from [`blockchain.rb`](blockchain.rb/blockchain.rb):
```ruby
def calc_hash
sha = Digest::SHA256.new
sha.update( @timestamp.to_s + @previous_hash + @data )
sha.hexdigest ## returns "eb8ecbf6d5870763ae246e37539d82e37052cb32f88bb8c59971f9978e437743"
end
```
A blockchain uses
2018-09-24 09:39:16 -04:00
- the block timestamp (e.g. `1637-09-15 20:52:38`) and
- the hash from the previous block (e.g. `edbd4e11e69bc399a9ccd8faaea44fb27410fe8e3023bb9462450a0a9c4caa1b`) and finally
- the block data (e.g. `Transaction Data...`)
2018-09-13 03:57:43 -04:00
to calculate the new hash digest checksum, that is, the hash
e.g. `be50017ee4bbcb33844b3dc2b7c4e476d46569b5df5762d14ceba9355f0a85f4`.
**Q: What's a Merkle Tree?**
A: A Merkle tree is a hash tree named after Ralph Merkle who patented the concept in 1979
(the patent expired in 2002). A hash tree is a generalization of hash lists or hash chains where every leaf node (in the tree) is labelled with a data block and every non-leaf node (in the tree)
is labelled with the crypto(graphic) hash of the labels of its child nodes. For more see the [Merkle tree](https://en.wikipedia.org/wiki/Merkle_tree) Wikipedia Article.
Note: By adding crypto(graphic) hash functions you can "merkelize" any data structure.
**Q: What's a Merkelized DAG (Directed Acyclic Graph)?**
2018-03-31 10:02:45 -04:00
2018-09-13 03:57:43 -04:00
A: It's a blockchain secured by crypto(graphic) hashes that uses a directed acyclic graph data structure (instead of linear "classic" linked list).
Note: Git uses merkelized dag (directed acyclic graph)s for its blockchains.
**Q: Is the Git Repo a Blockchain?**
A: Yes, every branch in the git repo is a blockchain.
The "classic" Satoshi-blockchain is like a git repo with a single master branch (only).
2018-03-31 10:02:45 -04:00
## Basic Introduction
2018-09-24 09:39:16 -04:00
2018-10-19 03:08:59 -04:00
- [Encryption](./Basic/crypto.md)
- [ ] [Consensus](<>)
- [Account and transaction model](./Basic/account.md)
- [ ] [Bitcoin basics](<>)
- [ ] [Ethereum basics](<>)
2018-09-24 09:39:16 -04:00
<!-- - [ ] []()链上治理 -->
2018-10-19 03:08:59 -04:00
- [ ] [Exchange](<>)
- [ ] [Application](./Extension/application.md)
- [Digital currency ranking](https://coinmarketcap.com/)
2018-03-30 05:24:34 -04:00
2018-09-24 09:50:03 -04:00
## Further Extension
2018-09-24 09:39:16 -04:00
2018-04-02 04:58:28 -04:00
### Books
2018-09-24 09:39:16 -04:00
- [区块链技术指南](https://yeasy.gitbooks.io/blockchain_guide/content/)
- [区块链原理、设计与应用](https://github.com/yjjnls/books/blob/master/block%20chain/%E5%8C%BA%E5%9D%97%E9%93%BE%E5%8E%9F%E7%90%86%E3%80%81%E8%AE%BE%E8%AE%A1%E4%B8%8E%E5%BA%94%E7%94%A8.pdf)
- [区块链 从数字货币到信用社会](https://github.com/yjjnls/books/blob/master/block%20chain/%E5%8C%BA%E5%9D%97%E9%93%BE%20%E4%BB%8E%E6%95%B0%E5%AD%97%E8%B4%A7%E5%B8%81%E5%88%B0%E4%BF%A1%E7%94%A8%E7%A4%BE%E4%BC%9A.pdf)
- [**Attack of the 50 Foot Blockchain: Bitcoin, Blockchain, Ethereum & Smart Contracts**](https://davidgerard.co.uk/blockchain/table-of-contents/) by David Gerard, London, 2017 --
_What is a bitcoin? ++
The Bitcoin ideology ++
The incredible promises of Bitcoin! ++
Early Bitcoin: the rise to the first bubble ++
How Bitcoin mining centralised ++
Who is Satoshi Nakamoto? ++
Spending bitcoins in 2017 ++
Trading bitcoins in 2017: the second crypto bubble ++
Altcoins ++
Smart contracts, stupid humans ++
Business bafflegab, but on the Blockchain ++
Case study: Why you cant put the music industry on a blockchain_
- [**Mastering Bitcoin - Programming the Open Blockchain**](https://github.com/bitcoinbook/bitcoinbook/blob/second_edition/ch09.asciidoc) 2nd Edition,
by Andreas M. Antonopoulos, 2017 - FREE (Online Source Version) --
_What Is Bitcoin? ++
How Bitcoin Works ++
Bitcoin Core: The Reference Implementation ++
Keys, Addresses ++
Wallets ++
Transactions ++
Advanced Transactions and Scripting ++
The Bitcoin Network ++
The Blockchain ++
Mining and Consensus ++
Bitcoin Security ++
Blockchain Applications_
- [**Programming Blockchains in Ruby from Scratch Step-by-Step Starting w/ Crypto Hashes... ( Beta / Rough Draft )**](https://github.com/yukimotopress/programming-blockchains-step-by-step)
by Gerald Bauer et al, 2018 - FREE (Online Version) --
_(Crypto) Hash ++
(Crypto) Block ++
(Crypto) Block with Proof-of-Work ++
Blockchain! Blockchain! Blockchain! ++
Blockchain Broken? ++
Timestamping ++
Mining, Mining, Mining - What's Your Hash Rate? ++
Bitcoin, Bitcoin, Bitcoin ++
(Crypto) Block with Transactions (Tx)_
- [**Programming Cryptocurrencies and Blockchains in Ruby ( Beta / Rough Draft )**](http://yukimotopress.github.io/blockchains)
by Gerald Bauer et al, 2018 - FREE (Online Version) @ Yuki & Moto Press Bookshelf --
_Digital $$$ Alchemy - What's a Blockchain? -
How-To Turn Digital Bits Into $$$ or €€€? •
Decentralize Payments. Decentralize Transactions. Decentralize Blockchains. •
The Proof of the Pudding is ... The Bitcoin (BTC) Blockchain(s)
\++
Building Blockchains from Scratch -
A Blockchain in Ruby in 20 Lines! A Blockchain is a Data Structure •
What about Proof-of-Work? What about Consensus? •
Find the Lucky Number - Nonce == Number Used Once
\++
Adding Transactions -
The World's Worst Database - Bitcoin Blockchain Mining •
Tulips on the Blockchain! Adding Transactions
\++
Blockchain Lite -
Basic Blocks •
Proof-of-Work Blocks •
Transactions
\++
Merkle Tree -
Build Your Own Crypto Hash Trees; Grow Your Own Money on Trees •
What's a Merkle Tree? •
Transactions
\++
Central Bank -
Run Your Own Federated Central Bank Nodes on the Blockchain Peer-to-Peer over HTTP •
Inside Mining - Printing Cryptos, Cryptos, Cryptos on the Blockchain
\++
Awesome Crypto
\++
Case Studies - Dutch Gulden • Shilling • CryptoKitties (and CryptoCopycats)_
- [**Blockchain for Dummies, IBM Limited Edition**](https://www.ibm.com/blockchain/what-is-blockchain.html) by Manav Gupta, 2017 - FREE (Digital Download w/ Email) --
_Grasping Blockchain Fundamentals ++
Taking a Look at How Blockchain Works ++
Propelling Business with Blockchains ++
Blockchain in Action: Use Cases ++
Hyperledger, a Linux Foundation Project ++
Ten Steps to Your First Blockchain application_
- [**Get Rich Quick "Business Blockchain" Bible - The Secrets of Free Easy Money**](https://github.com/bitsblocks/get-rich-quick-bible), 2018 - FREE --
_Step 1: Sell hot air. How? ++
Step 2: Pump up your tokens. How? ++
Step 3: Revolutionize the World. How?_
- [**Mastering Ethereum - Building Contract Services and Decentralized Apps on the Blockchain**](https://github.com/ethereumbook/ethereumbook) -
by Andreas M. Antonopoulos, Gavin Wood, 2018 - FREE (Online Source Version)
_What is Ethereum ++
Introduction ++
Ethereum Clients ++
Ethereum Testnets ++
Keys and Addresses ++
Wallets ++
Transactions ++
Contract Services ++
Tokens ++
Oracles ++
Accounting & Gas ++
EVM (Ethereum Virtual Machine) ++
Consensus ++
DevP2P (Peer-To-Peer) Protocol ++
Dev Tools and Frameworks ++
Decentralized Apps ++
Ethereum Standards (EIPs/ERCs)_
- [**Building Decentralized Apps on the Ethereum Blockchain**](https://www.manning.com/books/building-ethereum-dapps) by Roberto Infante, 2018 - FREE chapter 1 --
_Understanding decentralized applications ++
The Ethereum blockchain ++
Building contract services in (JavaScript-like) Solidity ++
Running contract services on the Ethereum blockchain ++
Developing Ethereum Decentralized apps with Truffle ++
Best design and security practice_
- [**Best of Bitcoin Maximalist - Scammers, Morons, Clowns, Shills & BagHODLers - Inside The New New Crypto Ponzi Economics**](https://github.com/bitsblocks/bitcoin-maximalist), 2018 - FREE
- [**Crypto Facts - Decentralize Payments - Efficient, Low Cost, Fair, Clean - True or False?**](https://github.com/bitsblocks/crypto-facts), 2018 - FREE
- [**IslandCoin White Paper - A Pen and Paper Cash System - How to Run a Blockchain on a Deserted Island**](https://github.com/bitsblocks/islandcoin-whitepaper)
by Tal Kol --
_Motivation ++
Consensus ++
Transaction and Block Specification -
Transaction format •
Block format •
Genesis block ++
References_
2018-09-13 03:57:43 -04:00
2018-09-14 07:46:37 -04:00
### Applications
2018-09-24 09:39:16 -04:00
2018-09-14 07:46:37 -04:00
#### Identity Applications
##### Public Blockchain Identity
2018-09-24 09:39:16 -04:00
- [Blockstack](https://blockstack.org) - Platform for decentralized, server-less apps where users control their data. Identity included.
- [Evernym](http://www.evernym.com) - Self-Sovereign identity built on top of open source permissioned blockchain.
- [Jolocom](https://jolocom.com) - Self-sovereing identity wallet.
- [SIN](https://en.bitcoin.it/wiki/Identity_protocol_v1) - Proposed identity protocol for BitCoin.
- [uPort](https://www.uport.me) - Self-Sovereign identity on [Ethereum](https://ethereum.org) by [ConsenSys](https://consensys.net).
2018-09-14 07:46:37 -04:00
##### Blockchain as a collateral
2018-09-24 09:39:16 -04:00
- [ShoCard](https://shocard.com) - Proprietary digital identity service, uses blockchain for time-stamping and secure documents exchange.
- [Tradle](https://tradle.io/) - Makes a bank on blockchain, identity as a collateral.
2018-09-14 07:46:37 -04:00
##### Unclear
2018-09-24 09:39:16 -04:00
- [KYC Chain](http://kyc-chain.com) - Secure platform for sharing verifiable identity claims, data or documents among financial institutions.
- [ObjectChain Collab](http://www.objectchain-collab.com) - Cross-industry collaboration over distributed identity.
- [UniquID](http://uniquid.com) - Identity both for people and devices.
- [Vida Identity](https://vidaidentity.com) - Enterprise-grade Blockchain Identity Software.
2018-09-14 07:46:37 -04:00
##### Guidance
2018-09-24 09:39:16 -04:00
- [ID3](https://idcubed.org) - Institute for Data Driven Design, explores issues around self-sovereign identity, and distributed organizations.
- [OpenCreds](http://opencreds.org) - W3C Credentials Community Group.
- [TAO Network Identity](http://tao.network/portfolio-item/the-identity-system/) - Description of blockchain identity by Tao.Network.
2018-09-14 07:46:37 -04:00
#### Internet of Things Applications
2018-09-24 09:39:16 -04:00
- [Chronicled](http://www.chronicled.com) - IoT devices registry on blockchain.
- [Filament](http://filament.com) - Software and hardware for decentralized Intranet of Things systems
- [IOTA](http://www.iotatoken.com) - Decentralized Internet of Things token on blockless blockchain.
- [Machinomy](http://machinomy.com) - Distributed platform for IoT micropayments.
- [Project Oaken](https://www.projectoaken.com) - IoT blockchain platform.
- [Slock.it](https://slock.it) - Ethereum-based platform for building Shared Things.
2018-09-14 07:46:37 -04:00
#### Energy Applications
2018-09-24 09:39:16 -04:00
- [bankymoon](http://bankymoon.co.za/) - Blockchain consultancy. [Presented](http://goo.gl/L6vJBx) bitcoin-topped smart electricity meter. Once topped up, it chooses a plan, and starts moving energy.
- [Co-Tricity](https://co-tricity.com/) - Decentralised energy marketplace by [Innogy](https://innovationhub.innogy.com/) and [ConsenSys](https://consensys.net).
- [Electron](http://www.electron.org.uk/) - Reinventing energy on blockchain.
- [GridSingularity](http://gridsingularity.com) - Blockchain for Smart Grid. Declare three years of work on the technology.
- [lo3 energy](http://lo3energy.com) - Energy Services, Product Research & Development. Makers of [Brooklyn Microgrid](http://brooklynmicrogrid.com) along with [ConsenSys](https://consensys.net).
- [lumo](https://lumoenergy.com.au) - Energy provider. Experiment with blockchain.
- [PowerLedger](https://powerledger.io) - Decentralised energy marketpace.
- [PowerPeers](https://www.powerpeers.nl/) - Peer-to-peer energy marketplace in the Netherlands.
- [Solar Change](http://www.solarchange.co/) - Makers of [Solar Coin](http://solarcoin.org/). AltCoin for a MW of solar power.
- [Terraledger](https://terraledger.com) - Provider of Renewable Energy Certificates.
2018-03-31 10:02:45 -04:00
## Development Tutorial
2018-09-24 09:39:16 -04:00
### [BitCoin](https://github.com/bitcoin/bitcoin)
2018-04-06 09:05:21 -04:00
[<img src="https://bitcoin.org/img/icons/logotop.svg" align="right" width="120">](https://bitcoin.org/zh_CN/)
2018-09-24 09:39:16 -04:00
- [BitCoin white paper](https://bitcoin.org/bitcoin.pdf) / [比特币白皮书](BitCoin/white%20paper.md)
- [Mastering BitCoin](https://github.com/bitcoinbook/bitcoinbook) / [精通比特币](http://zhibimo.com/read/wang-miao/mastering-bitcoin/index.html)
2018-03-30 05:24:34 -04:00
2018-03-31 10:02:45 -04:00
### Ethereum
2018-09-24 09:39:16 -04:00
2018-03-31 10:28:20 -04:00
[<img src="https://github.com/yjjnls/Notes/blob/master/img/ethereum.png" align="right" width="80">](https://www.hyperledger.org/projects/fabric)
2018-03-30 05:24:34 -04:00
2018-09-24 09:39:16 -04:00
- [Ethereum white paper](https://github.com/ethereum/wiki/wiki/White-Paper) / [以太坊白皮书](./Ethereum/white%20paper.md)
- [Ethereum wiki](https://github.com/ethereum/wiki/wiki)
- [Ethereum problems](https://github.com/ethereum/wiki/wiki/Problems)
2018-03-30 05:24:34 -04:00
2018-09-24 09:39:16 -04:00
### Fabric
2018-03-31 10:07:48 -04:00
2018-09-24 09:39:16 -04:00
[<img src="https://www.hyperledger.org/wp-content/uploads/2018/03/Hyperledger_Fabric_Logo_Color.png" align="right" width="120">](https://www.hyperledger.org/projects/fabric)
2018-03-31 10:02:45 -04:00
## Releated Tools
2018-09-24 09:39:16 -04:00
2018-03-31 10:02:45 -04:00
### Solidity
2018-09-24 09:39:16 -04:00
2018-04-02 04:58:28 -04:00
### truffle
2018-09-24 09:39:16 -04:00
2018-04-02 04:58:28 -04:00
### web3.js
2018-03-31 10:02:45 -04:00
## Projects and Applications
2018-09-24 09:39:16 -04:00
2018-07-08 02:54:52 -04:00
### Monero
2018-03-31 10:02:45 -04:00
2018-07-08 02:54:52 -04:00
### IOTA
### EOS
<!-- [<img src="https://avatars2.githubusercontent.com/u/10536621?s=200&v=4" align="right" width="40">](https://github.com/ipfs/ipfs) -->
2018-09-24 09:39:16 -04:00
### IFPS
2018-07-08 02:54:52 -04:00
<!-- [<img src="https://avatars3.githubusercontent.com/u/22163706?s=200&v=4" align="right" width="40">](https://github.com/mvs-org/metaverse)
2018-03-31 10:02:45 -04:00
### Metaverse
元界链
2018-03-30 05:24:34 -04:00
2018-03-29 23:10:11 -04:00
2018-03-31 10:02:45 -04:00
[<img src="https://avatars0.githubusercontent.com/u/28505705?s=200&v=4" align="right" width="40">](https://github.com/Bytom/bytom)
### BYTOM
2018-07-08 02:54:52 -04:00
比原链 -->
2018-03-29 23:10:11 -04:00
## Contribute
Contributions welcome!
2018-09-24 09:39:16 -04:00
1. Fork it (<https://github.com/yjjnls/awesome-blockchain/fork>)
2. Clone it (`git clone https://github.com/yjjnls/awesome-blockchain`)
3. Create your feature branch (`git checkout -b your_branch_name`)
4. Commit your changes (`git commit -m 'Description of a commit'`)
5. Push to the branch (`git push origin your_branch_name`)
6. Create a new Pull Request
2018-03-29 23:10:11 -04:00
2018-09-24 09:39:16 -04:00
If you found this resource helpful, give it a 🌟 otherwise contribute to it and give it a ⭐️.