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 can’ t 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 ⭐️.