# build blockchain from scratch

Published articles for build blockchain from scratch.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Blockchain Concepts Explained Through Go Modules and Software Build Problems

DevFeed: [Blockchain Concepts Explained Through Go Modules and Software Build Problems](<https://devfeed.tech/articles/ultimate-go-advanced-engineering-episode-1-22187.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2022/12/ultimate-go-advanced-engineering-episode-1.html>)

Published: 2022-12-12T00:00:00Z

Content type: tutorial

Language: en

Sources: [William Kennedy](<https://devfeed.tech/sources/william-kennedy.md>)

Topics: [Blockchain](<https://devfeed.tech/topics/blockchain.md>), [P2P](<https://devfeed.tech/topics/p2p.md>), [Database](<https://devfeed.tech/topics/database.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>)

Tags: [blockchain](<https://devfeed.tech/tags/blockchain.md>), [build-blockchain-from-scratch](<https://devfeed.tech/tags/build-blockchain-from-scratch.md>), [cryptographically-auditable](<https://devfeed.tech/tags/cryptographically-auditable.md>), [database](<https://devfeed.tech/tags/database.md>), [digital-wallet](<https://devfeed.tech/tags/digital-wallet.md>), [ecdsa](<https://devfeed.tech/tags/ecdsa.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [ethereum](<https://devfeed.tech/tags/ethereum.md>), [genesis-file](<https://devfeed.tech/tags/genesis-file.md>), [go](<https://devfeed.tech/tags/go.md>), [go-blockchain](<https://devfeed.tech/tags/go-blockchain.md>), [golang-blockchain](<https://devfeed.tech/tags/golang-blockchain.md>), [p2p](<https://devfeed.tech/tags/p2p.md>)

### AI overview

This video introduces blockchain concepts, including its append-only and transparent database model, cryptographic auditability, and peer-to-peer network structure without a central authority. It explains these ideas through reproducible, durable, and secure software builds and the Go module system.

### Source excerpt

Introduction In this video, Bill will introduce the concepts of what a blockchain is, the benefits of a blockchain, and the network environment it operates in. Bill describes a blockchain as a single, append-only, transparent, publicly available and cryptographically auditable database. Blockchains operate using a peer to peer (p2p) network with no single node designated as the central authority. To better understand what all that means, Bill begins to work through a familiar problem of creating reproducible, durable, and secure builds that software teams face. It's a real problem the Go team eventually solved with the new module system. As Bill uncovers different problems that present themselves, he introduces different blockchain concepts that can help provide a solution.

## Practical Uses Of Blockchain Technology

DevFeed: [Practical Uses Of Blockchain Technology](<https://devfeed.tech/articles/practical-uses-of-blockchain-technology-22184.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2022/06/practical-uses-blockchain-technology.html>)

Published: 2022-06-06T00:00:00Z

Content type: article

Language: en

Sources: [William Kennedy](<https://devfeed.tech/sources/william-kennedy.md>)

Topics: [Blockchain](<https://devfeed.tech/topics/blockchain.md>), [blockchain technology](<https://devfeed.tech/topics/blockchain-technology.md>), [Dependency management](<https://devfeed.tech/topics/dependency-management.md>), [Database](<https://devfeed.tech/topics/database.md>), [Cryptography](<https://devfeed.tech/topics/cryptography.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [blockchain](<https://devfeed.tech/tags/blockchain.md>), [blockchain-signature-verification](<https://devfeed.tech/tags/blockchain-signature-verification.md>), [blockchain-technology](<https://devfeed.tech/tags/blockchain-technology.md>), [build-blockchain-from-scratch](<https://devfeed.tech/tags/build-blockchain-from-scratch.md>), [cryptographically-auditable](<https://devfeed.tech/tags/cryptographically-auditable.md>), [cryptography](<https://devfeed.tech/tags/cryptography.md>), [database](<https://devfeed.tech/tags/database.md>), [dependency-management](<https://devfeed.tech/tags/dependency-management.md>), [digital-wallet](<https://devfeed.tech/tags/digital-wallet.md>), [distributed](<https://devfeed.tech/tags/distributed.md>), [ecdsa](<https://devfeed.tech/tags/ecdsa.md>), [ethereum](<https://devfeed.tech/tags/ethereum.md>), [genesis-file](<https://devfeed.tech/tags/genesis-file.md>), [go-blockchain](<https://devfeed.tech/tags/go-blockchain.md>), [golang-blockchain](<https://devfeed.tech/tags/golang-blockchain.md>), [verification](<https://devfeed.tech/tags/verification.md>)

### AI overview

The article explains practical uses of blockchain technology, focusing on a dependency-management verification system. The proposed system hashes code retrieved from a version-control system and compares it with a database record to detect changes. Cryptographic auditing and append-only records are presented as ways to make the database verifiable.

### Source excerpt

Introduction A blockchain is an integrated solution of different computer science problems in the form of a single, append-only, publicly available, transparent, and cryptographically auditable database that runs in a distributed and decentralized environment. I've heard many times that blockchain is a technology looking for a problem to solve. I disagree with that assessment because the tech and computer science behind blockchain has practical uses in everyday engineering problems. One use of this technology that comes to mind is a dependency management verification system.

## Blockchain In Go: Part IV: Fraud Detection

DevFeed: [Blockchain In Go: Part IV: Fraud Detection](<https://devfeed.tech/articles/blockchain-in-go-part-iv-fraud-detection-22183.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2022/05/blockchain-04-fraud-detection.html>)

Published: 2022-05-05T00:00:00Z

Content type: tutorial

Language: en

Sources: [William Kennedy](<https://devfeed.tech/sources/william-kennedy.md>)

Topics: [Blockchain](<https://devfeed.tech/topics/blockchain.md>), [audit trail](<https://devfeed.tech/topics/audit-trail.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>), [Database](<https://devfeed.tech/topics/database.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [audit-trail](<https://devfeed.tech/tags/audit-trail.md>), [blockchain](<https://devfeed.tech/tags/blockchain.md>), [blockchain-signature-verification](<https://devfeed.tech/tags/blockchain-signature-verification.md>), [build-blockchain-from-scratch](<https://devfeed.tech/tags/build-blockchain-from-scratch.md>), [cryptographic-audit](<https://devfeed.tech/tags/cryptographic-audit.md>), [digital-wallet](<https://devfeed.tech/tags/digital-wallet.md>), [ecdsa](<https://devfeed.tech/tags/ecdsa.md>), [ethereum](<https://devfeed.tech/tags/ethereum.md>), [fraud](<https://devfeed.tech/tags/fraud.md>), [fraud-detection](<https://devfeed.tech/tags/fraud-detection.md>), [genesis-file](<https://devfeed.tech/tags/genesis-file.md>), [go](<https://devfeed.tech/tags/go.md>), [go-blockchain](<https://devfeed.tech/tags/go-blockchain.md>), [golang-blockchain](<https://devfeed.tech/tags/golang-blockchain.md>), [hash](<https://devfeed.tech/tags/hash.md>), [storage](<https://devfeed.tech/tags/storage.md>), [verification](<https://devfeed.tech/tags/verification.md>)

### AI overview

This fourth post in a series explains how the Ardan blockchain detects forgery or changes to blocks and transaction data. It describes the cryptographic audit trail formed by block-header fields, including hashes linking each block to the previous one, so a node can verify its local blockchain copy and detect mismatches.

### Source excerpt

Introduction In the first three posts, I explained there were four aspects of a blockchain that this series would explore with a backing implementation provided by the Ardan blockchain project. Digital accounts with electronic signatures and verification Transaction distribution and synchronization between computers Redundant storage and consensus by different computers Detection of any fraud to past transactions The first post focused on how the Ardan blockchain provides support for digital accounts, signatures, and verification. The second post focused on transaction distribution and synchronization between different computers. The third post, focused on how the Ardan blockchain handles consensus between different computers which results in the redundant storage of the blockchain database. In this fourth post, I will focus on how the Ardan blockchain can detect forgery or changes to the underlying blocks and transaction data.

## Blockchain In Go: Part III: Redundant Storage And Consensus

DevFeed: [Blockchain In Go: Part III: Redundant Storage And Consensus](<https://devfeed.tech/articles/blockchain-in-go-part-iii-redundant-storage-and-consensus-22182.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2022/04/blockchain-03-redundant-storage-and-consensus.html>)

Published: 2022-04-19T00:00:00Z

Content type: tutorial

Language: en

Sources: [William Kennedy](<https://devfeed.tech/sources/william-kennedy.md>)

Topics: [Blockchain](<https://devfeed.tech/topics/blockchain.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [Transactions](<https://devfeed.tech/topics/transactions.md>)

Tags: [availability](<https://devfeed.tech/tags/availability.md>), [blockchain](<https://devfeed.tech/tags/blockchain.md>), [blockchain-consensus-protocol](<https://devfeed.tech/tags/blockchain-consensus-protocol.md>), [build-blockchain-from-scratch](<https://devfeed.tech/tags/build-blockchain-from-scratch.md>), [consensus](<https://devfeed.tech/tags/consensus.md>), [database](<https://devfeed.tech/tags/database.md>), [digital-wallet](<https://devfeed.tech/tags/digital-wallet.md>), [ethereum](<https://devfeed.tech/tags/ethereum.md>), [go](<https://devfeed.tech/tags/go.md>), [go-blockchain](<https://devfeed.tech/tags/go-blockchain.md>), [golang](<https://devfeed.tech/tags/golang.md>), [golang-blockchain](<https://devfeed.tech/tags/golang-blockchain.md>), [proof-of-work](<https://devfeed.tech/tags/proof-of-work.md>), [storage](<https://devfeed.tech/tags/storage.md>), [transactions](<https://devfeed.tech/tags/transactions.md>), [verification](<https://devfeed.tech/tags/verification.md>)

### AI overview

The third article in a series explains how the Ardan blockchain project handles consensus between computers and uses that process for redundant storage of the blockchain database. It introduces proof of work and proof of stake, discusses safety versus liveness, and notes the consensus approaches used by Bitcoin and Ethereum.

### Source excerpt

Introduction In the first two posts, I explained there were four aspects of a blockchain that this series would explore with a backing implementation provided by the Ardan blockchain project. Digital accounts with electronic signatures and verification Transaction distribution and synchronization between computers Redundant storage and consensus by different computers Detection of any fraud to past transactions The first post focused on how the Ardan blockchain provides support for digital accounts, signatures, and verification. The second post focused on transaction distribution and synchronization between different computers. In this third post, I will focus on how the Ardan blockchain handles consensus between different computers which results in the redundant storage of the blockchain database.

## Blockchain In Go: Part II: Transaction Distribution and Synchronization

DevFeed: [Blockchain In Go: Part II: Transaction Distribution and Synchronization](<https://devfeed.tech/articles/blockchain-in-go-part-ii-transaction-distribution-and-synchronization-22181.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2022/03/blockchain-02-transaction-distribution-synchronization.html>)

Published: 2022-03-08T00:00:00Z

Content type: tutorial

Language: en

Sources: [William Kennedy](<https://devfeed.tech/sources/william-kennedy.md>)

Topics: [Blockchain](<https://devfeed.tech/topics/blockchain.md>), [Transactions](<https://devfeed.tech/topics/transactions.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>), [API](<https://devfeed.tech/topics/api.md>), [REST API](<https://devfeed.tech/topics/rest-api.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Cache](<https://devfeed.tech/topics/cache.md>), [HTTP](<https://devfeed.tech/topics/http.md>), [JSON](<https://devfeed.tech/topics/json.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [blockchain](<https://devfeed.tech/tags/blockchain.md>), [build-blockchain-from-scratch](<https://devfeed.tech/tags/build-blockchain-from-scratch.md>), [cache](<https://devfeed.tech/tags/cache.md>), [digital-wallet](<https://devfeed.tech/tags/digital-wallet.md>), [distribution](<https://devfeed.tech/tags/distribution.md>), [ethereum](<https://devfeed.tech/tags/ethereum.md>), [go](<https://devfeed.tech/tags/go.md>), [go-blockchain](<https://devfeed.tech/tags/go-blockchain.md>), [golang-blockchain](<https://devfeed.tech/tags/golang-blockchain.md>), [http](<https://devfeed.tech/tags/http.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [json](<https://devfeed.tech/tags/json.md>), [mempool-blockchain](<https://devfeed.tech/tags/mempool-blockchain.md>), [network](<https://devfeed.tech/tags/network.md>), [project](<https://devfeed.tech/tags/project.md>), [rest-api](<https://devfeed.tech/tags/rest-api.md>), [series](<https://devfeed.tech/tags/series.md>), [synchronization](<https://devfeed.tech/tags/synchronization.md>), [transactions](<https://devfeed.tech/tags/transactions.md>)

### AI overview

This second article in a blockchain series explains how the Ardan blockchain distributes and synchronizes transactions between nodes. It describes submission through a wallet, storage in an in-memory mempool, signaling through a goroutine, and propagation to other nodes. It also introduces the HTTP-based REST API used for wallet and node communication.

### Source excerpt

Introduction In the first post, I explained there were four aspects of a blockchain that this series would explore with a backing implementation provided by the Ardan blockchain project. Digital accounts with electronic signatures and verification Transaction distribution and synchronization between computers Redundant storage and consensus by different computers Detection of any fraud to past transactions The first post focused on how the Ardan blockchain provides support for digital accounts, signatures, and verification. In this second post, I will focus on transaction distribution and synchronization between different computers (blockchain nodes).

## Blockchain In Go: Part I: Digital Accounts, Signatures and Verification

DevFeed: [Blockchain In Go: Part I: Digital Accounts, Signatures and Verification](<https://devfeed.tech/articles/blockchain-in-go-part-i-digital-accounts-signatures-and-verification-22180.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2022/02/blockchain-01-digital-accounts-signatures-verification.html>)

Published: 2022-02-12T00:00:00Z

Content type: tutorial

Language: en

Sources: [William Kennedy](<https://devfeed.tech/sources/william-kennedy.md>)

Topics: [Blockchain](<https://devfeed.tech/topics/blockchain.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>), [Code](<https://devfeed.tech/topics/code.md>), [Ethereum](<https://devfeed.tech/topics/ethereum.md>)

Tags: [blockchain](<https://devfeed.tech/tags/blockchain.md>), [blockchain-signature-verification](<https://devfeed.tech/tags/blockchain-signature-verification.md>), [build-blockchain-from-scratch](<https://devfeed.tech/tags/build-blockchain-from-scratch.md>), [code](<https://devfeed.tech/tags/code.md>), [digital-wallet](<https://devfeed.tech/tags/digital-wallet.md>), [ecdsa](<https://devfeed.tech/tags/ecdsa.md>), [ethereum](<https://devfeed.tech/tags/ethereum.md>), [genesis-file](<https://devfeed.tech/tags/genesis-file.md>), [go](<https://devfeed.tech/tags/go.md>), [go-blockchain](<https://devfeed.tech/tags/go-blockchain.md>), [golang-blockchain](<https://devfeed.tech/tags/golang-blockchain.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [verification](<https://devfeed.tech/tags/verification.md>)

### AI overview

This tutorial series introduces the Ardan blockchain project, a Go reference implementation intended for learning rather than production use. Part I explains how the project supports digital accounts, electronic signatures, and verification, using Ethereum as a reference.

### Source excerpt

Introduction This is the first post in a series that will explore the semantics and implementation details of the Ardan blockchain project. The code is a reference implementation of a blockchain and not intended to mirror any specific blockchain in use today. Even though the code has been engineered with production level coding standards, I wouldn't use this project for anything more than learning. I am using the Ethereum project as a reference and have taken inspiration from that code. I'm hoping that understanding the code inside the Ardan blockchain will give you enough knowledge to understand the code that runs Ethereum.