Curated list of resources for the development and applications of block chain.
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).
This is not a simple collection of Internet resources, but verified and organized data ensuring it's really suitable for your learning process and useful for your development and application.
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 bydigital fingerprints (that is, crypto hashes).Example from genesis_block.json
:
{
"version": 0,
"height": 1,
"previous_hash": null,
"timestamp": 1550049140488,
"merkle_hash": null,
"generator_publickey": "18941c80a77f2150107cdde99486ba672b5279ddd469eeefed308540fbd46983",
"hash": "d611edb9fd86ee234cdc08d9bf382330d6ccc721cd5e59cf2a01b0a2a8decfff",
"block_signature": "603b61b14348fb7eb087fe3267e28abacadf3932f0e33958fb016ab60f825e3124bfe6c7198d38f8c91b0a3b1f928919190680e44fbe7289a4202039ffbb2109",
"consensus_data": {},
"transactions": []
}
Q: What's a Hash? What's a (One-Way) Crypto(graphic) Hash Digest Checksum?
A: A hash e.g. d611edb9fd86ee234cdc08d9bf382330d6ccc721cd5e59cf2a01b0a2a8decfff
is a small digest checksum calculatedwith a one-way crypto(graphic) hash digest checksum functione.g. SHA256 (Secure Hash Algorithm 256 Bits)from the data. Example from crypto.js
:
function calc_hash(data) {
return crypto.createHash('sha256').update(data).digest('hex');
}
A blockchain uses
Version
, TimeStamp
, Previous Hash...
)andTransaction Data...
)to calculate the new hash digest checksum.
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 Wikipedia Article.
Note: By adding crypto(graphic) hash functions you can "merkelize" any data structure.
Q: What's a Merkelized DAG (Directed Acyclic Graph)?
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).
More Q&A
Bitcoin is an experimental digital currency that enables instant payments to anyone, anywhere in the world. Bitcoin uses peer-to-peer technology to operate with no central authority: managing transactions and issuing money are carried out collectively by the network.
Ethereum is a decentralized platform that runs smart contracts: applications that run exactly as programmed without any possibility of downtime, censorship, fraud or third-party interference.
These apps run on a custom built blockchain, an enormously powerful shared global infrastructure that can move value around and represent the ownership of property.
Theory
Implement a consortium blockchain using ethereum
XuperChain, the first open source project of XuperChain Lab, introduces a highly flexible blockchain architecture with great transaction performance.
XuperChain is the underlying solution for union networks with following highlight features:
High Performance
Solid Security
High Scalability
Multi-Language Support: Support pluggable multi-language contract VM using XuperBridge technology.
Flexibility: Modular and pluggable design provides high flexibility for users to build their blockchain solutions for various business scenarios.
Quorum is an Ethereum-based distributed ledger protocol with transaction/contract privacy and new consensus mechanisms.
Quorum is a fork of go-ethereum and is updated in line with go-ethereum releases.
Key enhancements over go-ethereum:
Monero is a private, secure, untraceable, decentralised digital currency. You are your bank, you control your funds, and nobody can trace your transfers unless you allow them to do so.
Privacy: Monero uses a cryptographically sound system to allow you to send and receive funds without your transactions being easily revealed on the blockchain (the ledger of transactions that everyone has). This ensures that your purchases, receipts, and all transfers remain absolutely private by default.
Security: Using the power of a distributed peer-to-peer consensus network, every transaction on the network is cryptographically secured. Individual wallets have a 25 word mnemonic seed that is only displayed once, and can be written down to backup the wallet. Wallet files are encrypted with a passphrase to ensure they are useless if stolen.
Untraceability: By taking advantage of ring signatures, a special property of a certain type of cryptography, Monero is able to ensure that transactions are not only untraceable, but have an optional measure of ambiguity that ensures that transactions cannot easily be tied back to an individual user or computer.
IOTA is a revolutionary new transactional settlement and data integrity layer for the Internet of Things. It’s based on a new distributed ledger architecture, the Tangle, which overcomes the inefficiencies of current Blockchain designs and introduces a new way of reaching consensus in a decentralized peer-to-peer system. For the first time ever, through IOTA people can transfer money without any fees. This means that even infinitesimally small nanopayments can be made through IOTA.
IOTA is the missing puzzle piece for the Machine Economy to fully emerge and reach its desired potential. We envision IOTA to be the public, permissionless backbone for the Internet of Things that enables true interoperability between all devices.
EOSIO is software that introduces a blockchain architecture designed to enable vertical and horizontal scaling of decentralized applications (the “EOSIO Software”). This is achieved through an operating system-like construct upon which applications can be built. The software provides accounts, authentication, databases, asynchronous communication and the scheduling of applications across multiple CPU cores and/or clusters. The resulting technology is a blockchain architecture that has the potential to scale to millions of transactions per second, eliminates user fees and allows for quick and easy deployment of decentralized applications. For more information, please read the EOS.IO Technical White Paper.
IPFS (the InterPlanetary File System) is a new hypermedia distribution protocol, addressed by content and identities. IPFS enables the creation of completely distributed applications. It aims to make the web faster, safer, and more open.
IPFS is a distributed file system that seeks to connect all computing devices with the same system of files. In some ways, this is similar to the original aims of the Web, but IPFS is actually more similar to a single bittorrent swarm exchanging git objects. You can read more about its origins in the paper IPFS - Content Addressed, Versioned, P2P File System.
IPFS is becoming a new major subsystem of the internet. If built right, it could complement or replace HTTP. It could complement or replace even more. It sounds crazy. It is crazy.
Blockchain guide by Baohua Yang, 2017 --Introduce blockchain related technologies, from theory to practice with bitcoin, ethereum and hyperledger.
Attack of the 50 Foot Blockchain: Bitcoin, Blockchain, Ethereum & Smart Contracts 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 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 )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 )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 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, 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 -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 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
Crypto Facts - Decentralize Payments - Efficient, Low Cost, Fair, Clean - True or False?, 2018 - FREE
IslandCoin White Paper - A Pen and Paper Cash System - How to Run a Blockchain on a Deserted Islandby Tal Kol --Motivation ++Consensus ++Transaction and Block Specification -Transaction format •Block format •Genesis block ++References
Blockchain in Action by Bina Ramamurthy, early access --Learn how blockchain differs from other distributed systems ++Smart contract development with Ethereum and the Solidity language ++Web UI for decentralized apps ++Identity, privacy and security techniques ++On-chain and off-chain data storage
Permissioned Blockchains in Action by Mansoor Ahmed-Rengers & Marta Piekarska-Geater, early access --A guide to creating innovative applications using blockchain technology ++Writing smart contracts and distributed applications using Solidity ++Configuring DLT networks ++Designing blockchain solutions for specific use cases ++Identity management in permissioned blockchains networks
Programming Hyperledger Fabric by Siddharth Jain, --A guide to developing blockchain applications for enterprise use cases ++Where Fabric fits in to the blockchain landscape ++The ins and outs of deploying real-world applications ++Developing smart contracts and client applications in Node ++Debugging and troubleshooting ++Securing production applications
Contributions welcome!
git clone https://github.com/yjjnls/awesome-blockchain
)git checkout -b your_branch_name
)git commit -m 'Description of a commit'
)git push origin your_branch_name
)If you found this resource helpful, give it a
Awesome Awesome Node.js A curated list of awesome lists that are about or related to Node.js. Inspired by the awesome list thing, going deeper down the rabbit hole. �� Meta stuff about this awesome li
Mining Digital Gold one Block at a Time?! • Don't Expect to Get Insanely Rich (Quick) • Tulips �� �� �� (like Blockchains) are Great and Gorgeous (and will Endure) b0 = Block.first( { from: "Du
Awesome Blockchain Articles A collection of awesome blockchain articles. Good learning resources about blockchain. 干货集合,入门区块链技术看这里就够了(可加Q群 680127749,备注说明加群来源,本文持续更新中...) 关注我的blog 入门科普 为了搞懂什么是区块链,我都快抑郁
Awesome Blockchain Rust Useful components for building blockchains in Rust. include: cryptography, distributed, p2p, consensus, etc Blockchains Blockchain Frameworks Cross-Chain Virtual Machines Gener
A curated list of awesome things related to Vite.js This awesome list is for Vite 2.x and onward. Vite 1.x's list is archived. Resources Official Resources 文档 GitHub Repo Release Notes Vue 3 Docs Awes
Awesome Python 是一个资源整理集合,由 vinta 发起和维护。内容包括:Web框架、网络爬虫、网络内容提取、模板引擎、数据库、数据可视化、图片处理、文本处理、自然语言处理、机器学习、日志、代码分析等。 这个系列没有推荐 Python 书籍、经典博文、交互教程,所以另外推荐:《25本免费的Python电子书》、《学习Python编程的11个(教程)资源》、《PythonMonk:Py