Dylan  Iqbal

Dylan Iqbal


Blockchain Domains + IPFS = Decentralized Websites

Traditional DNS has two points of failure—domain names require centralized custodians and content is stored on servers controlled by one company, meaning websites can be taken down. Unstoppable Domains builds domain registries on blockchains. These domains are not part of DNS and are stored in users’ Ethereum wallets. The user signs a message with their private key and writes their IPFS hash to the blockchain, giving them the power to put up or take down their website. Domains work in apps like MyEtherWallet, Trust Wallet, and Opera Browser.

#blockchain #developer #programming

What is GEEK

Buddha Community

Blockchain Domains + IPFS = Decentralized Websites

5 Blockchain Applications That Have Transformed the World of Technology

The blockchain is the decentralized database of the blocks of information, which gets recorded in the chain format and linked in a secured crypto graphical manner. This technology ensures proper safety of the data due to its secure nature, and it totally changes how people carry out transactions. It also brings about a faster and secure process of validating information needed to establish reliability.

Though blockchain technology came into the market to carry out only digital transactions, it is now used in various industries like supply chain, finance, health care, and many more.

The blockchain technology has made its position in mobile app development as well. Blockchain applications are transparent and accountable. From getting easy access to medical records and buying insurance, you can see blockchain applications everywhere.

Here are some of the areas where you can see the use of blockchain applications and how they have changed various industries.

1. Ripple

Ripple is useful for increasing banking transactions. The implementation of blockchain technology in the financial sector is much more profound than any other sector. Ripple proves this. It is one of the greatest tools to record and complete financial transactions.

It develops a large network despite strict physical boundaries. As there is no such third-party involvement present, the cost of these transactions is lower than usual. At the same time, the network also remains transparent and quite secured.

It is normally seen that financial transactions that happen globally are

error-prone and take a lot of time. In addition to this, when the transaction

fees and exchange rates get added up, the total cost usually gets high.

However, Ripple offers real-time international transactions without spending too much money. It has the network of about 200+ institutions making the process affordable, secure, and fast for all sorts of international transactions.

2. Etherisc

This blockchain application helps in automating flight insurance. Insurance is another area where blockchain is gaining popularity. Through this application, insurers can make smart contracts rather than getting involved in the traditional contracts that are usually complex. Etherisc is the blockchain application that helps customers buy flight insurance. If the flight gets canceled or delayed, they do not have to wait for months to get the payment back. This application ensures an on-time payout.

#blockchain #blockchain-technology #blockchain-development #blockchain-use-cases #blockchain-a #blockchain-technologies #technology #decentralization

Devin Pinto


Blockchain Certification | Blockchain Training Course | Blockchain Council

In all the market sectors, Blockchain technology has contributed to the redesign. The improvements that were once impossible have been pushed forward. Blockchain is one of the leading innovations with the ability to influence the various sectors of the industry. It also has the ability to be one of the career-influencing innovations at the same time. We have seen an increasing inclination towards the certification of the Blockchain in recent years, and there are obvious reasons behind it. Blockchain has everything to offer, from good packages to its universal application and futuristic development. Let’s address the reasons why one should go for Blockchain certification.

5 advantages of certification by Blockchain:

1. Lucrative packages- Everyone who completes their education or upskills themselves wants to end up with a good bundle, not only is one assured of a good learning experience with Blockchain, but the packages are drool-worthy at the same time. A Blockchain developer’s average salary varies between $150,000 and $175,000 per annum. Comparatively, a software developer gets a $137,000 per year salary. For a Blockchain developer, the San Francisco Bay area provides the highest bundle, amounting to $162,288 per annum. There’s no point arguing that learning about Blockchain is a smart decision with such lucrative packages.

2. Growing industry- When you select any qualification course, it becomes important that you choose a growing segment or industry that promises potential in the future. You should anticipate all of these with Blockchain. The size of the blockchain market is expected to rise from USD 3.0 billion in 2020 to USD 39.7 billion by 2025. This will see an incredible 67.3 percent CAGR between 2020-2025. To help business processes, several businesses are outsourcing Blockchain technologies. This clearly demonstrates that there will be higher demand in the future for Blockchain developers and certified Blockchain professionals.

3. Universal application- One of the major reasons for the success of Blockchain is that it has a global application. It is not sector-specific. Blockchain usage cases are discovered by almost all market segments. In addition, other innovations such as AI, big data, data science and much more are also supported by Blockchain. It becomes easier to get into a suitable industry once you know about Blockchain.

**4. Work protection-**Surely you would like to invest in an ability that ensures job security. You had the same chance for Blockchain. Since this is the technology of the future, understanding that Blockchain can keep up with futuristic developments will help in a successful and safe job.

**5.**After a certain point of your professional life, you are expected to learn about new abilities that can help enhance your skills. Upskilling is paramount. Upskilling oneself has become the need for the hour, and choosing a path that holds a lot of potential for the future is the best way to do this. For all computer geeks and others who want to gain awareness of emerging technology, Blockchain is a good option.

Concluding thoughts- opting for Blockchain certification is a successful career move with all these advantages. You will be able to find yourself in a safe and secured work profile once you have all the knowledge and information. Link for Blockchain certification programme with the Blockchain Council.

#blockchain certificate #blockchain training #blockchain certification #blockchain developers #blockchain #blockchain council

WTH is IPFS? InterPlanetary File Systems To Rescue The Internet

Introduced in February 2015, TechCrunch Magazine noted IPFS was “quickly spreading by word of mouth.”

It’s possibly a key component to solving deep-seated but largely unknown problems that exist in today’s internet usage.

Some believe IPFS, a new tongue-twisting acronym, is a tool that’ll finally evolve the internet from central entities to a world wide web of shared information, as our online founders always envisioned.

The Simple Breakdown:

IPFS = Git + BitTorrent

To understand IPFS or an Interplanetary File System, one can envision a file system that stores files and tracks versions over time, like the project Git……

Photo Source.

Git is a distributed version control system, or VCS. Developers use it to track changes to their code . When text is added, edited or deleted in any piece of code, Git tracks the changes line-by-line It’s distributed because every user has all the source code on their computer and can act as a server. Secondly, Git is backed by a content-addressable database, meaning the content in the database is immutable.

But… IPFS also incorporates how files move across a network, making it a distributed file system, such as BitTorrent.

Photo Source.

_BitTorrent allows users to quickly download large files using minimum internet bandwidth. For this reason it is free to use and includes no spyware or pop-up advertising. BitTorrent’s protocol maximizes transfer speed by gathering small pieces of files desired by the user and downloads the content pieces simultaneously from other users that retain seekers content. BitTorrent is popular for freely sharing videos, programs, books, music, legal/medical records, and more. Not to mention, the downloads are much faster than other protocols. _

Photo Source.

Git + BitTorrent = BFF

IPFS uses BitTorrent’s approach, but applies Git’s concept and creates a new type of file system that tracks the respective versions of files from all the users in the network.

By utilizing both characteristics of these two entities, IPFS birthed a new permanent web that challenges existing internet protocols, such as HTTP.

WTF Is Wrong With HTTP? It Seems Fine To Me, TYVM.

Well, first, I’m not sure if you realized you had options. So while the thought: “The World Wide Web is actually wider…” sinks into your head, here’s a brief summary of what you’ve likely been using for some time.

Sit back for a quick lesson on HTTP, ASAP. (lol, you love the free jokes in my articles).

The internet is a collection of protocols that describe how data moves through a network. Developers adopted these protocols over time as they built applications on top of existing infrastructure. The protocol that serves as the backbone of the web is the HyperText Transfer Protocol.

HTTP, or HyperText Transfer Protocol is an application layer protocol for distributed, collaborative hypermedia systems created by Tim Berners Lee at CERN in 1989. HTTP is the foundation for data communication using hypertext files. It is currently used for most of the data transfer on the internet.

HTTP is a request-response protocol.

Since the internet boasts a vast array of resources hosted on different servers. To access these resources, a browser needs to be able to send a request to the server and display the resources. HTTP is the underlying format for structuring requests and responses for communication between client and host.

The message that is sent by a client to a server is what is known as an HTTP request. When these requests are being sent, clients can use various methods to make this request.

HTTP request methods are the assets that indicate a specific action to be performed on a given resource. Each method implements a distinct semantic, but there are some shared features.

Common Example: the Google homepage-back to the “client” or browser. This is a location-addressed protocol which means when google.com is inserted into a browser, it gets translated into an IP address belonging to a Google server, initiating a request-response cycle with that server.

WTF, We Have a 404 On HTTP! SOS!

Internet savvy, or not, I believe we have all fallen victim to an HTTP meltdown at least once in our lives.

Photo Source.

Do you recall a time in your life when you and a large group of people went to the same website at the same time?

Each individual participating in this action types the request into their online device and sends a request to that website, where a response is given.

each person is sent the same data, individually. If there’s 10,000 people trying to access a site, on the backend, there are 10k requests, and 10k responses. This sounds great, right? Problem is it’s pretty inefficient.

In a perfect world, participants should be able to leverage physical proximity to more effectively retrieve requested information.

HTTP presents another significant issue if there is a problem in the network’s line of communication, leaving the client unable to connect with the server.

This occurs if:

  • A country is blocking some content
  • An ISP has an outage
  • Content was merely moved or deleted.

These types of broken links exist everywhere on the HTTP web.

A location-based addressing model, like HTTP, encourages the centralization of information.

It is convenient to trust a handful of applications with all our online data, but there’s a great sense of power and responsibility that comes with placing centralized providers with our precious personal and public information.

#ipfs #blockchain #bittorrent #women-in-blockchain #women-in-tech #what-is-ipfs #how-does-ipfs-work #hackernoon-top-story

Giles  Goodwin

Giles Goodwin


Blockchain: The Wheel of Industry 4.0 | Hacker Noon

If you have been following banking, investing, or cryptocurrency over the last ten years, you may be familiar with “blockchain,” the record-keeping technology behind the Bitcoin network. And there’s a good chance that it only makes so much sense. In trying to learn more about blockchain, you’ve probably encountered words like this: “blockchain is a distributed, decentralized, public ledger.”

The good news is that blockchain is actually easier to understand than that definition sounds.

There’s another good news. I have published a free ebook on “Blockchain”. Download it for free :-)

What is Blockchain?

If this technology is so complex, why call it “blockchain?” At its most basic level, blockchain is literally just a chain of blocks, but not in the traditional sense of those words. When we say the words “block” and “chain” in this context, we are actually talking about digital information (the “block”) stored in a public database (the “chain”).

“Blocks” on the blockchain are made up of digital pieces of information. Specifically, they have three parts:

Blocks store information about transactions like the date, time, and dollar amount of your most recent purchase from Amazon. (NOTE: This Amazon example is for illustrative purchases; Amazon retail does not work on a blockchain principle as of this writing)Blocks store information about who is participating in transactions. A block for your splurge purchase from Amazon would record your name along with Amazon.com, Inc. Instead of using your actual name, your purchase is recorded without any identifying information using a unique “digital signature,” sort of like a username. Blocks store information that distinguishes them from other blocks. Much like you and I have names to distinguish us from one another, each block stores a unique code called a “hash” that allows us to tell it apart from every other block. Hashes are cryptographic codes created by special algorithms. Let’s say you made your splurge purchase on Amazon, but while it’s in transit, you decide you just can’t resist and need a second one. Even though the details of your new transaction would look nearly identical to your earlier purchase, we can still tell the blocks apart because of their unique codes.

While the block in the example above is being used to store a single purchase from Amazon, the reality is a little different. A single block on the Bitcoin blockchain can actually store up to 1 MB of data. Depending on the size of the transactions, that means a single block can house a few thousand transactions under one roof.

How Does Blockchain Work

When a block stores new data it is added to the blockchain. Blockchain, as its name suggests, consists of multiple blocks strung together. In order for a block to be added to the blockchain, however, four things must happen:

A transaction must occur. Let’s continue with the example of your impulsive Amazon purchase. After hastily clicking through multiple checkout prompt, you go against your better judgment and make a purchase. As we discussed above, in many cases a block will group together potentially thousands of transactions, so your Amazon purchase will be packaged in the block along with other users’ transaction information as well. That transaction must be verified. After making that purchase, your transaction must be verified. With other public records of information, like the Securities Exchange Commission, Wikipedia, or your local library, there’s someone in charge of vetting new data entries. With blockchain, however, that job is left up to a network of computers. When you make your purchase from Amazon, that network of computers rushes to check that your transaction happened in the way you said it did. That is, they confirm the details of the purchase, including the transaction’s time, dollar amount, and participants. (More on how this happens in a second.)That transaction must be stored in a block. After your transaction has been verified as accurate, it gets the green light. The transaction’s dollar amount, your digital signature, and Amazon’s digital signature are all stored in a block. There, the transaction will likely join hundreds, or thousands, of others like it. That block must be given a hash. Not unlike an angel earning its wings, once all of a block’s transactions have been verified, it must be given a unique, identifying code called a hash. The block is also given the hash of the most recent block added to the blockchain. Once hashed, the block can be added to the blockchain.

When that new block is added to the blockchain, it becomes publicly available for anyone to view—even you. If you take a look at Bitcoin’s blockchain, you will see that you have access to transaction data, along with information about when (“Time”), where (“Height”), and by who (“Relayed By”) the block was added to the blockchain.

#blockchain #decentralization #bitcoin #blockchain-technology #cryptocurrency #decentralized #blockchain-top-story #wheel-of-industry

A Collection About Awesome Blockchains

Mining Digital Gold one Block at a Time?! • Don't Expect to Get Insanely Rich (Quick) • Tulips :tulip::tulip::tulip: (like Blockchains) are Great and Gorgeous (and will Endure)

b0 = Block.first(
        { from: "Dutchgrown", to: "Vincent", what: "Tulip Bloemendaal Sunset", qty: 10 },
        { from: "Keukenhof",  to: "Anne",    what: "Tulip Semper Augustus",    qty: 7  } )

b1 = Block.next( b0,
        { from: "Flowers",    to: "Ruben",   what: "Tulip Admiral van Eijck",  qty: 5  },
        { from: "Vicent",     to: "Anne",    what: "Tulip Bloemendaal Sunset", qty: 3  },
        { from: "Anne",       to: "Julia",   what: "Tulip Semper Augustus",    qty: 1  },
        { from: "Julia",      to: "Luuk",    what: "Tulip Semper Augustus",    qty: 1  } )

(Source: blockchain_with_transactions.rb)

Awesome Blockchains

A collection about awesome blockchains - open distributed databases w/ crypto hashes incl. git ;-). Blockchains are the new tulips :tulip::tulip::tulip:.


What's News?

For blockchain books, see the new Best of Crypto Books page »

The Open Blockchains Book of the Year 2020 Award Goes To...

Libra Shrugged: How Facebook Tried to Take Over the Money by David Gerard, November 2020, 182 Pages -- Introduction: Taking over the money ++ A user's guide to Libra ++ The genesis of Libra: Beller's blockchain ++ To launch a Libra: Let’s start a crypto ++ Bitcoin: why Libra is like this ++ The Libra White Papers ++ Banking the unbanked ++ The Libra Reserve plan and economic stability ++ Libra, privacy and your digital identity ++ The regulators recoil in horror ++ David Marcus before the US House and Senate ++ July to September 2019: Libra runs the gauntlet ++ October 2019: Libra's bad month ++ Mark Zuckerberg before the US House ++ November 2019: The comedown ++ Central bank digital currencies ++ Epilogue: Libra 2.0: not dead yet ++ Appendix: 2010–2013: The rise and fall of Facebook Credits

For more about Diem (formerly Libra), see the Awesome Diem (formerly Libra) and Move page »

For crypto quotes, see the new 100+ Best of Crypto Quotes - I HODL, you HODL, we HODL! - BREAKING: BITCOIN JUST BROKE $22 000! page »

The Best Crypto Quote "Oracle Saying" of the Year 2020 Award Goes To...

SEC Investor Education:

  • Don't understand an investment?
  • Don't invest in it.

Yes, but what if there's only 21 million of it?

- Trolly McTrollface

Frequently Asked Questions (F.A.Q.s) & Answers

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 digital fingerprints (that is, cryptho hashes). Example from blockchain.rb:

  @timestamp     = 1637-09-15 20:52:38,
  @data          = "Genesis",
  @previous_hash = "0000000000000000000000000000000000000000000000000000000000000000",
  @hash          = "edbd4e11e69bc399a9ccd8faaea44fb27410fe8e3023bb9462450a0a9c4caa1b">,
  @timestamp     = 1637-09-15 21:02:38,
  @data          = "Transaction Data...",
  @previous_hash = "edbd4e11e69bc399a9ccd8faaea44fb27410fe8e3023bb9462450a0a9c4caa1b",
  @hash          = "eb8ecbf6d5870763ae246e37539d82e37052cb32f88bb8c59971f9978e437743">,
  @timestamp     = 1637-09-15 21:12:38,
  @data          = "Transaction Data......",
  @previous_hash = "eb8ecbf6d5870763ae246e37539d82e37052cb32f88bb8c59971f9978e437743",
  @hash          = "be50017ee4bbcb33844b3dc2b7c4e476d46569b5df5762d14ceba9355f0a85f4">,

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:

def calc_hash
  sha = Digest::SHA256.new
  sha.update( @timestamp.to_s + @previous_hash + @data )
  sha.hexdigest   ## returns "eb8ecbf6d5870763ae246e37539d82e37052cb32f88bb8c59971f9978e437743"

A blockchain uses

  • 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...)

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 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).

Do-It-Yourself (DIY) - Build Your Own Blockchain



Let's Build the Tiniest Blockchain in Python Series by Gerald Nash

Build Your Own Blockchain: A Python Tutorial by Eric Munsing, March 2017, (Source)

Learn Blockchains by Building One (in Python) by Daniel van Flymen, September 2017, (Source) -- The fastest way to learn how Blockchains work is to build one

Build Your Own Blockchain (in Python 3) Series by Jack Schultz, (Source)

A Practical Introduction to Blockchain with Python by Adil Moujahid, March 2018, (Source)


How Does Bitcoin Force Consensus Among Byzantine Generals? by Fabio Akita, November 2017

blockchain-lite - Build your own blockchains with crypto hashes; revolutionize the world with blockchains, blockchains, blockchains one block at a time! by Gerald Bauer, Ruby Advent Calendar 2017 / Day 1, December 2017

merkletree library - Build Your Own Crypto Hash Trees; Grow Your Own Money on Trees by Gerald Bauer, Ruby Advent Calendar 2017 / Day 19, December 2017

centralbank command line tool (and library) - Print Your Own Money / Cryptocurrency; Run Your Own Federated Central Bank Nodes on the Blockchain Peer-to-Peer over HTTP by Gerald Bauer, Ruby Advent Calendar 2017 / Day 24, December 2017

A guide to building a blockchain & cryptocurrency from scratch (Source) by Antoine Fink, April 2021


Write your own blockchain and Proof-of-Work (PoW) algorithm using Crystal by Bradford Lamson-Scribner, May 2018, (Source)


Writing a Tiny Blockchain in JavaScript by Xavier Decuyper, July 2017

Node.js Blockchain Imlementation: BrewChain: Chain+WebSockets+HTTP Server by Darren Beck, November 2017, (Source) -- Protecting the tea making ledger from unscrupulous colleagues

Build your own Blockchain in Javascript/Visualization of Blockchains by Nam Chu Hoai, January 2018


Naivecoin: a tutorial for building a cryptocurrency by Lauri Hartikka, (Source)


Creating Your First Blockchain with Java, Part 1 by Kass, December 2017, (Source)


Let's implement a cryptocurrency in Kotlin by Vasily Fomin, July 2018, (Source)


Blockchain by Example in SQL Server by Benjamin Campbell, December 2017, (Source)


Building Blockchain in Rust Series by Jacob Lindahl, GeekLaunch, (Source), (Slide Decks in PDF)


Building Blockchain in Go Series by Ivan Kuznetsov, (Source)

Blockchain Series in Go by by Coral Health (Source)

Talk Notes


See Build your own Blockchain / Cryptocurrency @ Build your own (insert technology here)


Blockchain from Scratch - Ruby Version

class Block

  attr_reader :timestamp
  attr_reader :data
  attr_reader :previous_hash
  attr_reader :hash

  def initialize(data, previous_hash)
    @timestamp     = Time.now
    @data          = data
    @previous_hash = previous_hash
    @hash          = calc_hash

  def self.first( data="Genesis" )    # create genesis (big bang! first) block
    ## note: uses all zero for previous_hash ("0")
    Block.new( data, "0000000000000000000000000000000000000000000000000000000000000000" )

  def self.next( previous, data="Transaction Data..." )
    Block.new( data, previous.hash )


  def calc_hash
    sha = Digest::SHA256.new
    sha.update( @timestamp.to_s + @previous_hash + @data )

end  # class Block

## let's get started
##   build a blockchain a block at a time

b0 = Block.first( "Genesis" )
b1 = Block.next( b0, "Transaction Data..." )
b2 = Block.next( b1, "Transaction Data......" )
b3 = Block.next( b2, "More Transaction Data..." )

blockchain = [b0, b1, b2, b3]

pp blockchain

(Source: blockchain.rb)

will pretty print (pp) something like:

  @timestamp     = 1637-09-15 20:52:38,
  @data          = "Genesis",
  @previous_hash = "0000000000000000000000000000000000000000000000000000000000000000",
  @hash          = "edbd4e11e69bc399a9ccd8faaea44fb27410fe8e3023bb9462450a0a9c4caa1b">,
  @timestamp     = 1637-09-15 21:02:38,
  @data          = "Transaction Data...",
  @previous_hash = "edbd4e11e69bc399a9ccd8faaea44fb27410fe8e3023bb9462450a0a9c4caa1b",
  @hash          = "eb8ecbf6d5870763ae246e37539d82e37052cb32f88bb8c59971f9978e437743">,
  @timestamp     = 1637-09-15 21:12:38,
  @data          = "Transaction Data......",
  @previous_hash = "eb8ecbf6d5870763ae246e37539d82e37052cb32f88bb8c59971f9978e437743",
  @hash          = "be50017ee4bbcb33844b3dc2b7c4e476d46569b5df5762d14ceba9355f0a85f4">,
  @timestamp     = 1637-09-15 21:22:38,
  @data          = "More Transaction Data...",
  @previous_hash = "be50017ee4bbcb33844b3dc2b7c4e476d46569b5df5762d14ceba9355f0a85f4",
  @hash          = "5ee2981606328abfe0c3b1171440f0df746c1e1f8b3b56c351727f7da7ae5d8d">]

Comments from the reddit ruby posting:

Wait, so a blockchain is just a linked list?

No. A linked list is only required to have a reference to the previous element, a block must have an identifier depending on the previous block's identifier, meaning that you cannot replace a block without recomputing every single block that comes after. In this implementation that happens as the previous digest is input in the calc_hash method.

What about Proof of Work / Waste?

Let's add a proof of work / waste to the blockchain. In the classic blockchain you have to compute a block hash that starts with leading zeros (00). The more leading zeros the harder (more difficult) to compute. Let's keep it easy to compute with two leading zeros (00), that is, 16^2 = 256 possibilites (^1,2). Three leading zeros (000) would be 16^3 = 4_096 possibilites and four zeros (0000) would be 16^4 = 65_536 and so on.

(^1): 16 possibilties because it's a hex or hexadecimal or base 16 number, that is, 0 1 2 3 4 6 7 8 9 a (10) b (11) c (12) d (13) e (14) f (15).

(^2): A random secure hash algorithm needs on average 256 tries (might be lets say 305 tries, for example, because it's NOT a perfect statistic distribution of possibilities).


def compute_hash_with_proof_of_work( difficulty="00" )
  nonce = 0
  loop do
    hash = calc_hash_with_nonce( nonce )
    if hash.start_with?( difficulty )  
      return [nonce,hash]     ## bingo! proof of work if hash starts with leading zeros (00)
      nonce += 1              ## keep trying (and trying and trying)

def calc_hash_with_nonce( nonce=0 )
  sha = Digest::SHA256.new
  sha.update( nonce.to_s + @timestamp.to_s + @previous_hash + @data )

(Source: blockchain_with_proof_of_work.rb)

Let's rerun the sample with the proof of work machinery added. Now the sample will pretty print (pp) something like:

  @timestamp     = 1637-09-20 20:13:38,
  @data          = "Genesis",
  @previous_hash = "0000000000000000000000000000000000000000000000000000000000000000",
  @nonce         = 242,
  @hash          = "00b8e77e27378f9aa0afbcea3a2882bb62f6663771dee053364beb1887e18bcf">,
  @timestamp     = 1637-09-20 20:23:38,
  @data          = "Transaction Data...",
  @previous_hash = "00b8e77e27378f9aa0afbcea3a2882bb62f6663771dee053364beb1887e18bcf",
  @nonce         = 46,
  @hash          = "00aae8d2e9387e13c71b33f8cd205d336ac250d2828011f5970062912985a9af">,
  @timestamp     = 1637-09-20 20:33:38,
  @data          = "Transaction Data......",
  @previous_hash = "00aae8d2e9387e13c71b33f8cd205d336ac250d2828011f5970062912985a9af",
  @nonce         = 350,
  @hash          = "00ea45e0f4683c3bec4364f349ee2b6816be0c9fd95cfd5ffcc6ed572c62f190">,
  @timestamp     = 1637-09-20 20:43:38,
  @data          = "More Transaction Data...",
  @previous_hash = "00ea45e0f4683c3bec4364f349ee2b6816be0c9fd95cfd5ffcc6ed572c62f190",
  @nonce         = 59,
  @hash          = "00436f0fca677652963e904ce4c624606a255946b921132d5b1f70f7d86c4ab8">]

See the difference? All hashes now start with leading zeros (00) and the nonce is the random "lucky number" that makes it happen. That's the magic behind the proof of work.

Blockchain from Scratch - JavaScript Version

class Block {

  constructor(data, previousHash) {
    this.timestamp    = new Date()
    this.data         = data
    this.previousHash = previousHash
    this.hash         = this.calcHash()

  calcHash() {
    var sha = SHA256.create()
    sha.update( this.timestamp.toString() + this.previousHash + this.data )
    return sha.hex()

  static first( data="Genesis" ) {    // create genesis (big bang! first) block
    // uses all-zero previousHash
    return new Block( data, "0000000000000000000000000000000000000000000000000000000000000000" )

  static next( previous, data="Transaction Data..." ) {
    return new Block( data, previous.hash )

// let's get started
//   build a blockchain a block at a time

b0 = Block.first( "Genesis" )
b1 = Block.next( b0, "Transaction Data..." )
b2 = Block.next( b1, "Transaction Data......" )
b3 = Block.next( b2, "More Transaction Data..." )

blockchain = [b0, b1, b2, b3]

console.log( blockchain )

(Source: blockchain.js)

will log something like:

[ Block {
     timestamp    : 1637-09-18 08:25:54,
     data         : 'Genesis',
     previousHash : '0000000000000000000000000000000000000000000000000000000000000000',
     hash         : 'c396de4c03ddb5275661982adc75ce5fc5905d2a2457d1266c74436c1f3c50f1' },
   Block {
     timestamp    : 1637-09-18 08:35:54,
     data         : 'Transaction Data...',
     previousHash : 'c396de4c03ddb5275661982adc75ce5fc5905d2a2457d1266c74436c1f3c50f1',
     hash         : '493131e09c069645c82795c96e4715cea0f5558be514b5096d853a5b9899154a' },
   Block {
     timestamp    : 1637-09-18 08:45:54,
     data         : 'Transaction Data......',
     previousHash : '493131e09c069645c82795c96e4715cea0f5558be514b5096d853a5b9899154a',
     hash         : '97aa3cb5052615d60ff8e6b41bef606562588c4874f011970ac2f218e2f0f4a8' },
   Block {
     timestamp    : 1637-09-18 08:55:54,
     data         : 'More Transaction Data...',
     previousHash : '97aa3cb5052615d60ff8e6b41bef606562588c4874f011970ac2f218e2f0f4a8',
     hash         : 'e10e020f832e46c2b60e1c3c0412bd370b2fde5f0f782c16eb87d0313ea0d3a3' } ]

Blockchain Articles

Reflections on the Blockchain by Rufus Pollock (Open Knowledge Foundation), July 2016 -- The DAO: Code is not Law – and It’s Dangerous to Think So ++ The Internet changed the world - surely the Blockchain will too? ++ Gold-rush or Internet-rush? ++ Governance Matters in Bitcoin ++ The Myth of a Costless, Ownerless Network ++ Lessons from History

On the Dangers of a Blockchain Monoculture by Tony Arcieri, January 2016 -- The Bitcoin blockchain: the world's worst database ++ Next-generation protocols ++ Decentralized ledger protocols ++ Bitcoin-NG ++ Blockchain! Blockchain! Blockchain! ++ The great decentralized database in the sky

I Don’t Believe in Blockchain by Tim Bray, May 2017

Minimum Viable Blockchain by Ilya Grigorik, May 2014 -- Securing transactions with triple-entry bookkeeping ++ Securing transactions with PKI ++ Balance = Σ(receipts) ++ Multi-party transfers & verification ++ Double-spending and distributed consensus - Requirements for a distributed consensus network; Protecting the network from Sybil attacks; Proof-of-work as a participation requirement ++ Building the minimum viable blockchain - Adding "blocks" & transaction fee incentives; Racing to claim the transaction fees; Resolving chain conflicts; Blocks are never final ++ Properties of the (minimum viable) blockchain

Blockchains by analogies and applications: How blockchain compares to Git, Raft, and other technologies. by Kieren James-Lubin, January 2016 -- Blockchains are databases ++ Understanding transactions ++ Persistent, replicated databases (related technology: Git) ++ Peer-to-peer networks (related technology: BitTorrent) ++ Distributed consensus (related technology: distributed databases, Raft) ++ Minting new coins (mining) ++ Embedded identities (related technology: TLS) ++ Smart contracts: Like SQL expressions & triggers ++ What can we really do with blockchains?

Blockchain Books

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

BEWARE: Bitcoin is a gigantic ponzi scheme¹. To the moon!? The new gold standard!? Do NOT "invest" trying to get-rich-quick HODLing. Why not? The bitcoin code is archaic and out-of-date. Burn, baby, burn! Proof-of-work / waste is a global energy environmental disaster using 300 kW/h per bitcoin transaction (!) that's about 179 kilograms of CO₂ emissions². Programmable money (or the internet of value) for all future generations with (bitcoin) script without loops and jumps (gotos) and all "stateless"!? LOL.

¹: (Source: Best of Bitcoin Maximalist - Scammers, Morons, Clowns, Shills & BagHODLers - Inside The New New Crypto Ponzi Economics)

²: Assuming let's say 0.596 kilograms of CO₂ per kW/h (that's the energy efficiency in Germany) that's about 179 kilograms of CO₂ per bitcoin transaction (300 kW/h × 0.596 kg). For more insights see the Bitcoin Energy Consumption Index.

Programming Bitcoin from Scratch by Jimmy Song, 2019 - FREE (Online Source Version) -- Chapter 6 - Script - How Script Works • Example Operations • Parsing the Script Fields • Combining the Script Fields • Standard Scripts • p2pk • Problems with p2pk • Solving the Problems with p2pkh • Scripts Can Be Arbitrarily Constructed • Conclusion ++ Chapter 8 - Pay-to-Script Hash - Bare Multisig • Coding OP_CHECKMULTISIG • Problems with Bare Multisig • Pay-to-Script-Hash (p2sh) • Coding p2sh • Conclusion ++ Chapter 13 - Segregated Witness - Pay-to-Witness-Pubkey-Hash (p2wpkh) • p2wpkh Transactions • p2sh-p2wpkh • Coding p2wpkh and p2sh-p2wpkh • Pay-to-Witness-Script-Hash (p2wsh) • p2sh-p2wsh • Coding p2wsh and p2sh-p2wsh • Other Improvements • Conclusion

Programming Bitcoin Script Transaction (Crypto) Contracts Step-by-Step ( Beta / Rough Draft ) by Gerald Bauer et al, 2019 - FREE (Online Version) -- Let's start with building your own bitcoin stack machine from zero / scratch and let's run your own bitcoin ops (operations)...

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)

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

Programming Crypto Blockchain Contracts Step-by-Step Book / Guide ( Beta / Rough Draft ) by Gerald Bauer et al, 2019 - FREE (Online Version) -- Let's Start with Ponzi & Pyramid Schemes. Run Your Own Lotteries, Gambling Casinos and more on the Blockchain World Computer...

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?

Best of Bitcoin Maximalist - Scammers, Morons, Clowns, Shills & BagHODLers - Inside The New New Crypto Ponzi Economics by Trolly McTrollface, et al, 2018 - FREE

Crypto Facts - Decentralize Payments - Efficient, Low Cost, Fair, Clean - True or False? by Nouriel Roubini, David Gerard, et al, 2018 - FREE

Crypto is the Mother of All Scams and (Now Busted) Bubbles - While Blockchain Is The Most Over-Hyped Technology Ever, No Better than a Spreadsheet/Database by Nouriel Roubini, 2018 - FREE

IslandCoin White Paper - A Pen and Paper Cash System - How to Run a Blockchain on a Deserted Island by Tal Kol -- Motivation ++ Consensus ++ Transaction and Block Specification - Transaction format • Block format • Genesis block ++ References

Blockchain (Lite) Crypto Hash Libraries



blockchain.lite (github: openblockchains/blockchain.lite.rb, gem: blockchain-lite) - build your own blockchain with crypto hashes - revolutionize the world with blockchains, blockchains, blockchains one block at a time

require 'blockchain-lite'

b0 = Block.first( "Genesis" )
b1 = Block.next( b0, "Transaction Data..." )
b2 = Block.next( b1, "Transaction Data......" )
b3 = Block.next( b2, "More Transaction Data..." )

blockchain = [b0, b1, b2, b3]

pp blockchain   

will pretty print (pp) something like:

  @timestamp     = 1637-09-15 20:52:38,
  @data          = "Genesis",
  @previous_hash = "0000000000000000000000000000000000000000000000000000000000000000",
  @hash          = "edbd4e11e69bc399a9ccd8faaea44fb27410fe8e3023bb9462450a0a9c4caa1b">,
  @timestamp     = 1637-09-15 21:02:38,
  @data          = "Transaction Data...",
  @hash          = "eb8ecbf6d5870763ae246e37539d82e37052cb32f88bb8c59971f9978e437743",
  @previous_hash = "edbd4e11e69bc399a9ccd8faaea44fb27410fe8e3023bb9462450a0a9c4caa1b">,


blockchain.lite (github: openblockchains/blockchain.lite.js, npm: blockchain-lite) - build your own blockchain with crypto hashes - revolutionize the world with blockchains, blockchains, blockchains one block at a time

const Blocks = require( "blockchain-lite" )

// use basic block
let Block = Blocks.basic

let b0 = Block.first( 'Genesis' )
let b1 = Block.next( b0, 'Transaction Data...' )
let b2 = Block.next( b1, 'Transaction Data......' )
let b3 = Block.next( b2, 'More Transaction Data...' )

let blockchain = [b0, b1, b2, b3]

console.log( blockchain )

will log something like:

[ Block {
    timestamp:     2017-09-25 17:03:38,
    data:         'Genesis',
    previousHash: '0000000000000000000000000000000000000000000000000000000000000000',
    hash:         '08f4fa71628c5bc6b430228738bc8c41afaf508ece0b1cf9c9cac53d02e11829' },
  Block {
    timestamp:     2017-09-25 17:13:38,
    data:         'Transaction Data...',
    previousHash: '08f4fa71628c5bc6b430228738bc8c41afaf508ece0b1cf9c9cac53d02e11829',
    hash:         '740a4aeb3441484c96d1e7f63d31b716220ccee3b6fe94547cae2afbb6010626' },
  Block {
    timestamp:     2017-09-25 17:23:38,
    data:         'Transaction Data......',
    previousHash: '740a4aeb3441484c96d1e7f63d31b716220ccee3b6fe94547cae2afbb6010626',
    hash:         '28b6892a069e2ff7f1c3128ab495d7cd9b9b1636a51a7f69db93a14b1ee6b1a7' },
  Block {
    timestamp:     2017-09-25 17:33:38,
    data:         'More Transaction Data...',
    previousHash: '28b6892a069e2ff7f1c3128ab495d7cd9b9b1636a51a7f69db93a14b1ee6b1a7',
    hash:         '4cc0329b2c0cb32e0451fa3179bd944d4cd0fcf410939172f979e9fd2aa9f5f3' } ]

Git, Git, Git - The Stupid Content Tracker with Crypto Hashes

Everything is local. Distributed is the new centralized.

Quotes - Blockchains and Git

Yep, that's the joke. Nobody has been able to explain to me how the "blockchain" buzzword is significantly different to "git repo". -- Yaakov

But if you said "let's build a currency where all transactions are stored in a git repo" you wouldn't be taken seriously for even 24 hrs. -- Yaakov

Soon explaining git like "a git repo is like a blockchain with commits instead of blocks". -- Nicolás Berger

"A local branch is like a state channel. It can be pushed and merged into the master blockchain at any moment." -- Nicolás Berger

The #Blockchain has changed the world. Here I make the argument that the #Blockchain is just like #git. -- Jackson Kelley

git merge [-m REF] [-g BLOB] --push Merge and push all signed commits to the blockchain. -- Git Commands


Learn Enough Git to Be Dangerous by Michael Hartl - FREE (Online Version) -- Getting started ++ Backing up and sharing ++ Intermediate workflow ++ Collaborating ++ Conclusion ++ Advanced setup

Pro Git by Scott Chacon and Ben Straub, 2nd Edition, 2014 - FREE (Online Version) -- Getting Started ++ Git Basics ++ Git Branching ++ Git on the Server ++ Distributed Git ++ GitHub ++ Git Tools ++ Customizing Git ++ Git and Other Systems ++ Git Internals ++ A1: Git in Other Environments ++ A2: Embedding Git in your Applications ++ A3: Git Commands

Git gets easier once you get the basic idea that branches are homeomorphic endofunctors mapping submanifolds of a Hilbert space. -- Anonymous

Open Distributed Databases on Git

football.db - open public domain football datasets (incl. clubs, national teams, leagues, match schedules, etc.)

world.db - open public domain world (country) datasets

beer.db - open public domain beer & brewery datasets

Add a beer transaction to the #blockchain on #git and win a free Wiener Lager beer! Cheers. Prost. -- Gerald Bauer @ Austria Codes

Open Distributed (Hyper) Ledger Books on Git

Shilling (or Schilling) - Shilling on the Blockchain! - Rock-Solid Alpine Dollar from Austria

Tulips - Tulips on the Blockchain! - Learn by Example from the Real World (Anno 1637) - Buy! Sell! Hold! Enjoy the Beauty of Admiral of Admirals, Semper Augustus, and More

Classic Tulip Mania

A period in the Dutch Golden Age during which contract prices for bulbs of the recently introduced tulip reached extraordinarily high levels and then dramatically collapsed in February 1637.

Quotes - Blockchains are the next Internets / Tulips

People who compare digital tokens to tulips are essentially saying digital tokens are a bubble backed by nothing but pure hype and speculation.

What they fail to understand is that tulips come from dirt, not a blockchain.

And as we all know, blockchain is possibly the best technological innovation since the internet. It will have a tremendous impact on global business and society in general. -- TulipToken


Tulipomania: The Story of the World's Most Coveted Flower & the Extraordinary Passions It Aroused by Mike Dash, 2001 -- A Mania for Tulips ++ The Valley of Tien Shan ++ Within the Abode of Bliss ++ Stranger from the East ++ Clusius ++ Leiden ++ An Adornment to the Cleavage ++ The Tulip in the Mirror ++ Florists ++ Boom ++ At the Sign of the Golden Grape ++ The Orphans of Wouter Winkel ++ Bust ++ Goddess of Whores ++ At the Court of the Tulip King ++ Late Flowering

Tulipmania: Money, Honor, and Knowledge in the Dutch Golden Age by Anne Goldgar, 2007 -- Something Strange ++ Art & Flowers ++ Bloemisten ++ Grieving Money ++ Bad Faith ++ Cabbage Fever ++ Glossary ++ A Note on Money

Breaking News: CryptoKitties (Yes, Cute Little Cartoon Cats) on the Blockchain!

Collectible. Breedable. Adorable.

Collect and breed digital cats. Start meow. Buy! Sell! Hold!

Learn more @ cryptokitties.co

Latest (and Greatest) Investment Opportunity!

Blockchain has unlocked the magic of digital scarcity, and combining that with the power of making the digital goods persistent gives them a potential value that is only limited by how much prestige a wealthy person might place on ownership of the item.

-- Justin Poirier

All I want for Christmas is a CryptoKitty.

-- Kayla Williams

I got a fever. And the only prescription is more CryptoKitties.

-- Eduardo Salazar

My Gen 7 CryptoKitty #104375. The Future is Meow.

-- Anshul Dhawan

  • Fabulous Persian Spock Gerbil Gold Cottoncandy - Extremely rare gen 5 swift virgin | 2.9 ETH
  • Rarity: 0.00264% Gen 5 JAGUAR FABULOUS GOLD DALI!! VIRGIN!
  • Rarity: 0.0015% Princess Bubblegum is now for sale! Gen 12 | Brisk | Virgin | Chartreux | Bubblegum | Otaku | Emeraldgreen | Saycheese | Mauveover | Spock - Starts ETH 20/Ends ETH 10
  • Gold ducat, Gen 5, Virgin, Swift. Very cheap
  • Cheap Gen 1 cute kittie with rare genes! Only 0.125 ETH
  • UNIQUE Virgin Peach Googly Gold Mauveover gen:2 cooldown:1 0.87992% RARE
  • SUPER CHEAP: Gerbil, Ragdoll, Scarlet, Chestnut, Cotton Candy!!! 0.02 ETH (~$14)
  • I'm giving away a Gen 1 FAST Gold for free...

-- CrypoKittiesMarket

Awesome CryptoKitties (and CryptoCopycats)

A collection about Awesome CryptoKitties (Yes, Cute Little Cartoon Cats) on the Blockchain! and CryptoCopycats - digital collectibles secured on a distributed public databases w/ crypto hashes. Are CryptoPuppies the new CryptoKitties? Learn by Example from the Real World (Anno 2017) - Buy! Sell! Hodl!

More @ cryptocopycats/awesome-cryptokitties

Events, Meetups, Orgs

Revolutionize the world one country at a time. Blockchainers of the world, unite!

Awesome Awesomeness

A curated list of awesome lists.

  • Blockchain Stuff -- a curated list of blockchain and general cryptocurrency resources
  • Awesome Blockchain by Igor Barinov et al -- a curated list of the bitcoin blockchain services
  • Awesome Blockchain by Tim Reznich et al -- a curated list of blockchain services and exchanges
  • Awesome Blockchain by istinspring et al -- a curated list of awesome projects and services based on blockchain technology
  • Awesome Coins by Kenneth Reitz et al -- a guide to crypto-currencies and their algos
  • Awesome CryptoKitties (and CryptoCopycats) by Gerald Bauer et al -- a curated list about the awesome crypto kitties and copycats
  • Awesome Git by Dick Tang et al -- a curated list of amazingly awesome Git tools, resources and shiny things
  • Awesome by Sindre Sorhus et al -- a curated list of awesome lists

Author: openblockchains
Source Code: https://github.com/openblockchains/awesome-blockchains
License: CC0-1.0 License