# go blockchain

Published articles for go blockchain.

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

## Ultimate Go: Advanced Engineering Episode 20

DevFeed: [Ultimate Go: Advanced Engineering Episode 20](<https://devfeed.tech/articles/ultimate-go-advanced-engineering-episode-20-22209.md>)

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

Published: 2023-01-27T00: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>), [Data structures](<https://devfeed.tech/topics/data-structures.md>), [Transactions](<https://devfeed.tech/topics/transactions.md>), [HTTP](<https://devfeed.tech/topics/http.md>), [REST API](<https://devfeed.tech/topics/rest-api.md>), [servers](<https://devfeed.tech/topics/servers.md>)

Tags: [account-balance](<https://devfeed.tech/tags/account-balance.md>), [bitcoin](<https://devfeed.tech/tags/bitcoin.md>), [blockchain](<https://devfeed.tech/tags/blockchain.md>), [blockchain-rest-api](<https://devfeed.tech/tags/blockchain-rest-api.md>), [blockchain-state](<https://devfeed.tech/tags/blockchain-state.md>), [data-structure](<https://devfeed.tech/tags/data-structure.md>), [ethereum](<https://devfeed.tech/tags/ethereum.md>), [genesis-block](<https://devfeed.tech/tags/genesis-block.md>), [genesis-record](<https://devfeed.tech/tags/genesis-record.md>), [go-blockchain](<https://devfeed.tech/tags/go-blockchain.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [http](<https://devfeed.tech/tags/http.md>), [rest-api](<https://devfeed.tech/tags/rest-api.md>), [state](<https://devfeed.tech/tags/state.md>), [transactions](<https://devfeed.tech/tags/transactions.md>), [video](<https://devfeed.tech/tags/video.md>)

### AI overview

This video demonstrates how to launch a blockchain node, define an in-memory database for account information, manage blockchain state, and access the blockchain over HTTP through a REST API.

### Source excerpt

Introduction In episode 19, Bill designed and implemented the data structure for an account on his blockchain. This type will have a nonce field to ensure incoming transactions are valid and performed in order. Since the database will be stored in memory and not on disk, the balances in these accounts are reconstructed with information from previous transactions and the genesis block. In this video, Bill takes all the theories discussed in this series and applies them by launching his first blockchain node. Bill starts by defining a database type that will house all the account information on his blockchain with the initial values populated by the genesis record. Once he is finished, Bill will add a new package named state and, as the name implies, it will manage the state on his blockchain. Watch and learn how to launch a blockchain node and interface with it over HTTP.

## Defining and Validating Blockchain Transactions in an In-Memory Accounting Database

DevFeed: [Defining and Validating Blockchain Transactions in an In-Memory Accounting Database](<https://devfeed.tech/articles/ultimate-go-advanced-engineering-episode-18-22207.md>)

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

Published: 2023-01-24T00: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>), [data](<https://devfeed.tech/topics/data.md>), [Ethereum](<https://devfeed.tech/topics/ethereum.md>)

Tags: [bitcoin](<https://devfeed.tech/tags/bitcoin.md>), [blockchain](<https://devfeed.tech/tags/blockchain.md>), [blockchain-transaction](<https://devfeed.tech/tags/blockchain-transaction.md>), [code](<https://devfeed.tech/tags/code.md>), [data](<https://devfeed.tech/tags/data.md>), [ethereum](<https://devfeed.tech/tags/ethereum.md>), [factory-function](<https://devfeed.tech/tags/factory-function.md>), [function](<https://devfeed.tech/tags/function.md>), [go-blockchain](<https://devfeed.tech/tags/go-blockchain.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [learn](<https://devfeed.tech/tags/learn.md>), [reference](<https://devfeed.tech/tags/reference.md>), [transactions](<https://devfeed.tech/tags/transactions.md>), [types](<https://devfeed.tech/tags/types.md>), [video](<https://devfeed.tech/tags/video.md>)

### AI overview

This video explains how to define and validate transaction types for a blockchain's in-memory accounting database. It covers the transaction data type, field design, validation methods, nonce tokens, and a transaction factory function, with concepts borrowed from Ethereum for reference.

### Source excerpt

Introduction In episode 17, Bill began to design an in-memory accounting database that will store the account balances on his blockchain. To build this database, Bill will add a memory pool on each node that stores a list of public addresses with their respective balances. The balances on these addresses are reconstructed by reading the previous transaction records found on his blockchain. In this video, Bill will define the types of transactions his blockchain will support. The first step Bill takes is to define the transaction data type and give a full walkthrough of the reasoning behind the fields he chose for this data type. Next, he'll define methods for this type that will validate a transaction. While writing this code, Bill will borrow a few concepts from Ethereum to build a reference implementation. Watch to learn how transactions are managed on the blockchain and how to define one on your blockchain.

## Ultimate Go: Advanced Engineering Episode 19 -- Defining a Blockchain Account Data Structure

DevFeed: [Ultimate Go: Advanced Engineering Episode 19 -- Defining a Blockchain Account Data Structure](<https://devfeed.tech/articles/ultimate-go-advanced-engineering-episode-19-22208.md>)

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

Published: 2023-01-24T00:00:00Z

Content type: tutorial

Language: en

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

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [Blockchain](<https://devfeed.tech/topics/blockchain.md>), [Data structures](<https://devfeed.tech/topics/data-structures.md>), [Ethereum](<https://devfeed.tech/topics/ethereum.md>), [Transactions](<https://devfeed.tech/topics/transactions.md>)

Tags: [account](<https://devfeed.tech/tags/account.md>), [bitcoin](<https://devfeed.tech/tags/bitcoin.md>), [blockchain](<https://devfeed.tech/tags/blockchain.md>), [data-structure](<https://devfeed.tech/tags/data-structure.md>), [data-type](<https://devfeed.tech/tags/data-type.md>), [design](<https://devfeed.tech/tags/design.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [ethereum](<https://devfeed.tech/tags/ethereum.md>), [factory-function](<https://devfeed.tech/tags/factory-function.md>), [go](<https://devfeed.tech/tags/go.md>), [go-blockchain](<https://devfeed.tech/tags/go-blockchain.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [learn](<https://devfeed.tech/tags/learn.md>), [transactions](<https://devfeed.tech/tags/transactions.md>), [video](<https://devfeed.tech/tags/video.md>)

### AI overview

This video explains how to define a user account type for a blockchain in Go. It covers the account data structure, the design rationale, and a factory function for initializing an account.

### Source excerpt

Introduction In episode 18, Bill defined the Go type that will represent a transaction and implemented the methods to validate one. While developing the transaction type, Bill states that he'll be borrowing concepts from Ethereum to ensure that he's building a reference implementation. Bill's transaction type has a field named nonce, similar to Ethereum, that ensures transactions are executed in order. The nonce value of the last transaction is stored in his accounting database and later compared for additional verification.

## Ultimate Go: Advanced Engineering Episode 17

DevFeed: [Ultimate Go: Advanced Engineering Episode 17](<https://devfeed.tech/articles/ultimate-go-advanced-engineering-episode-17-22206.md>)

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

Published: 2023-01-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>), [Transactions](<https://devfeed.tech/topics/transactions.md>), [Database](<https://devfeed.tech/topics/database.md>)

Tags: [account](<https://devfeed.tech/tags/account.md>), [account-balance](<https://devfeed.tech/tags/account-balance.md>), [accounting](<https://devfeed.tech/tags/accounting.md>), [bitcoin](<https://devfeed.tech/tags/bitcoin.md>), [blockchain](<https://devfeed.tech/tags/blockchain.md>), [database](<https://devfeed.tech/tags/database.md>), [ethereum](<https://devfeed.tech/tags/ethereum.md>), [go-blockchain](<https://devfeed.tech/tags/go-blockchain.md>), [in-memory-database](<https://devfeed.tech/tags/in-memory-database.md>), [memory-pool](<https://devfeed.tech/tags/memory-pool.md>), [transactions](<https://devfeed.tech/tags/transactions.md>)

### AI overview

This video tutorial continues a blockchain engineering series by implementing account-balance tracking. It designs an in-memory accounting database and uses a memory pool to store account balances, following earlier transaction-verification work.

### Source excerpt

Introduction In episode 16, Bill implemented additional means of verification for his blockchain's transactions. The first update he made was to verify if a transaction is destined for his blockchain by reading the first byte of the signature. The next one Bill made was to recalculate the public address from a signature and compare it with the from field of the transaction to verify if the request is valid. While building this, Bill demonstrates how a user's private key transforms into their public address.

## Ultimate Go Episode 16: Adding Transaction Validation and Security to a Blockchain

DevFeed: [Ultimate Go Episode 16: Adding Transaction Validation and Security to a Blockchain](<https://devfeed.tech/articles/ultimate-go-advanced-engineering-episode-16-22205.md>)

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

Published: 2023-01-17T00: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>), [Security](<https://devfeed.tech/topics/security.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>)

Tags: [bitcoin](<https://devfeed.tech/tags/bitcoin.md>), [blockchain](<https://devfeed.tech/tags/blockchain.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [ethereum](<https://devfeed.tech/tags/ethereum.md>), [go](<https://devfeed.tech/tags/go.md>), [go-blockchain](<https://devfeed.tech/tags/go-blockchain.md>), [iam](<https://devfeed.tech/tags/iam.md>), [identity](<https://devfeed.tech/tags/identity.md>), [identity-management](<https://devfeed.tech/tags/identity-management.md>), [learn](<https://devfeed.tech/tags/learn.md>), [private-key](<https://devfeed.tech/tags/private-key.md>), [protocol](<https://devfeed.tech/tags/protocol.md>), [public-address](<https://devfeed.tech/tags/public-address.md>), [secure-blockchain](<https://devfeed.tech/tags/secure-blockchain.md>), [security](<https://devfeed.tech/tags/security.md>), [validation](<https://devfeed.tech/tags/validation.md>), [verification](<https://devfeed.tech/tags/verification.md>)

### AI overview

This video explains how to add validation mechanisms to blockchain nodes. It covers checking a transaction's destination, verifying signature rules defined by the protocol, and calculating a user's address from a transaction signature.

### Source excerpt

Introduction In episode 15, Bill architected a solution to ensure all the users on his blockchain were given a unique identifier. His approach consisted of essentially leveraging the randomness of a user's private key to ensure each identifier is unique. A disadvantage Bill pointed out with this is that a user may forget their private key and ultimately lose access to their account. To circumvent this issue, Bill proposed the usage of a mnemonic, that is composed of 12 to 24 words, to act as the private key since it's simpler to keep track of and hard to guess.

## Ultimate Go: Advanced Engineering Episode 15

DevFeed: [Ultimate Go: Advanced Engineering Episode 15](<https://devfeed.tech/articles/ultimate-go-advanced-engineering-episode-15-22204.md>)

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

Published: 2023-01-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>), [Transactions](<https://devfeed.tech/topics/transactions.md>), [Ethereum](<https://devfeed.tech/topics/ethereum.md>)

Tags: [bitcoin](<https://devfeed.tech/tags/bitcoin.md>), [blockchain](<https://devfeed.tech/tags/blockchain.md>), [digital-signature](<https://devfeed.tech/tags/digital-signature.md>), [ecdsa](<https://devfeed.tech/tags/ecdsa.md>), [ethereum](<https://devfeed.tech/tags/ethereum.md>), [generate](<https://devfeed.tech/tags/generate.md>), [go-blockchain](<https://devfeed.tech/tags/go-blockchain.md>), [library](<https://devfeed.tech/tags/library.md>), [private-key](<https://devfeed.tech/tags/private-key.md>), [public-address](<https://devfeed.tech/tags/public-address.md>), [public-key](<https://devfeed.tech/tags/public-key.md>), [transactions](<https://devfeed.tech/tags/transactions.md>)

### AI overview

This video tutorial explains how to derive a blockchain user's unique address from a public key recovered from a transaction signature. It covers reading the public key, validating the transaction's origin, and generating the user's address using Go Ethereum library functions.

### Source excerpt

Introduction In episode 14, Bill architected a solution to digitally sign the transactions on his blockchain. His solution retrieved the private key by : loading private key data from disk, parsing the key data and returning the ECDSA private key. The private key is then used to generate the signature of a transaction. While writing the code to perform this functionality, Bill highlighted how a blockchain node can use a transaction's signature to extrapolate the public key.

## Creating Ethereum Digital Signatures with Go

DevFeed: [Creating Ethereum Digital Signatures with Go](<https://devfeed.tech/articles/ultimate-go-advanced-engineering-episode-14-22203.md>)

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

Published: 2023-01-11T00:00:00Z

Content type: tutorial

Language: en

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

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

Tags: [bitcoin](<https://devfeed.tech/tags/bitcoin.md>), [blockchain](<https://devfeed.tech/tags/blockchain.md>), [code](<https://devfeed.tech/tags/code.md>), [digital-signature](<https://devfeed.tech/tags/digital-signature.md>), [ecdsa](<https://devfeed.tech/tags/ecdsa.md>), [ethereum](<https://devfeed.tech/tags/ethereum.md>), [go](<https://devfeed.tech/tags/go.md>), [go-blockchain](<https://devfeed.tech/tags/go-blockchain.md>), [library](<https://devfeed.tech/tags/library.md>), [private-key](<https://devfeed.tech/tags/private-key.md>), [public-key](<https://devfeed.tech/tags/public-key.md>), [signed-data](<https://devfeed.tech/tags/signed-data.md>), [transactions](<https://devfeed.tech/tags/transactions.md>)

### AI overview

A video tutorial demonstrating how to create Ethereum digital signatures with Go. It covers private ECDSA keys, signing objects, loading private keys from disk, decoding Ethereum signatures, and deriving public keys using the Go Ethereum library.

### Source excerpt

Introduction In episode 13, Bill discussed the idea of adding salt to a hash and how modern crypto-currency blockchains use it to better interpret requests sent to nodes. He continued by defining a function called stamp that embeds a salt within a hash. While writing the function, Bill stated that he would use keccak256 as it's the same algorithm used by Ethereum to generate hash values. Bill will use the APIs provided with Go Ethereum to generate a keccak256 hash. He plans on reusing the stamp function in the future to digitally sign transactions performed on his blockchain.

## Ultimate Go: Advanced Engineering Episode 13

DevFeed: [Ultimate Go: Advanced Engineering Episode 13](<https://devfeed.tech/articles/ultimate-go-advanced-engineering-episode-13-22202.md>)

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

Published: 2023-01-11T00: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>), [Algorithm](<https://devfeed.tech/topics/algorithm.md>), [Security](<https://devfeed.tech/topics/security.md>), [Ethereum](<https://devfeed.tech/topics/ethereum.md>), [API](<https://devfeed.tech/topics/api.md>), [Transactions](<https://devfeed.tech/topics/transactions.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [bitcoin](<https://devfeed.tech/tags/bitcoin.md>), [blockchain](<https://devfeed.tech/tags/blockchain.md>), [data-stamping](<https://devfeed.tech/tags/data-stamping.md>), [digital-signature](<https://devfeed.tech/tags/digital-signature.md>), [digital-signatures](<https://devfeed.tech/tags/digital-signatures.md>), [ethereum](<https://devfeed.tech/tags/ethereum.md>), [go](<https://devfeed.tech/tags/go.md>), [go-blockchain](<https://devfeed.tech/tags/go-blockchain.md>), [hash](<https://devfeed.tech/tags/hash.md>), [hexademical](<https://devfeed.tech/tags/hexademical.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [keccak256](<https://devfeed.tech/tags/keccak256.md>), [salt](<https://devfeed.tech/tags/salt.md>), [security](<https://devfeed.tech/tags/security.md>), [video](<https://devfeed.tech/tags/video.md>)

### AI overview

This video tutorial explains how to add a salt value to transaction hashes, implement the keccak256 algorithm in Go, and use transaction stamping in a blockchain. It also discusses digital signatures and related security issues.

### Source excerpt

Introduction In episode 12, Bill laid out his strategy to handle data hashing on his blockchain. The first step he took was to create a package to handle the cryptographical aspects of his blockchain. After that, he wrote a hash function that met the requirements outlined in his strategy. This function took transaction data as a parameter and returned a hexadecimal representation of the hash. To implement this function, Bill imported packages from the Go standard library and Ethereum API.

## Ultimate Go: Advanced Engineering Episode 12

DevFeed: [Ultimate Go: Advanced Engineering Episode 12](<https://devfeed.tech/articles/ultimate-go-advanced-engineering-episode-12-22201.md>)

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

Published: 2023-01-04T00:00:00Z

Content type: tutorial

Language: en

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

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

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [bitcoin](<https://devfeed.tech/tags/bitcoin.md>), [blockchain](<https://devfeed.tech/tags/blockchain.md>), [code](<https://devfeed.tech/tags/code.md>), [ethereum](<https://devfeed.tech/tags/ethereum.md>), [go](<https://devfeed.tech/tags/go.md>), [go-blockchain](<https://devfeed.tech/tags/go-blockchain.md>), [hash](<https://devfeed.tech/tags/hash.md>), [hashing](<https://devfeed.tech/tags/hashing.md>), [hex-value](<https://devfeed.tech/tags/hex-value.md>), [hexademical](<https://devfeed.tech/tags/hexademical.md>), [standard-library](<https://devfeed.tech/tags/standard-library.md>), [video](<https://devfeed.tech/tags/video.md>)

### AI overview

This video tutorial explains how to hash a transaction in Go using packages from the standard library and the Ethereum Go library. It also discusses the desired properties of a hashing function and the role of cryptographic signatures and public-key recovery in a decentralized blockchain.

### Source excerpt

Introduction In episode 11, Bill highlighted the issue of identity verification and provided a solution to this problem. The solution proposed was to cryptographically sign a transaction to verify its authenticity. Bill chose to implement a solution making use of the Elliptic Curve Digital Signature Algorithm (ECDSA) as the public key can be extracted from a signature. Although a small distinction, the ability to re-compute a public key is essential in a decentralized and distributed environment.

## Defining Go Types and Loading Blockchain Settings from JSON

DevFeed: [Defining Go Types and Loading Blockchain Settings from JSON](<https://devfeed.tech/articles/ultimate-go-advanced-engineering-episode-10-22199.md>)

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

Published: 2023-01-03T00:00:00Z

Content type: tutorial

Language: en

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

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

Tags: [bitcoin](<https://devfeed.tech/tags/bitcoin.md>), [blockchain](<https://devfeed.tech/tags/blockchain.md>), [blockchain-asset](<https://devfeed.tech/tags/blockchain-asset.md>), [clean-code](<https://devfeed.tech/tags/clean-code.md>), [code](<https://devfeed.tech/tags/code.md>), [data-structure](<https://devfeed.tech/tags/data-structure.md>), [data-type](<https://devfeed.tech/tags/data-type.md>), [ethereum](<https://devfeed.tech/tags/ethereum.md>), [genesis-record](<https://devfeed.tech/tags/genesis-record.md>), [go](<https://devfeed.tech/tags/go.md>), [go-blockchain](<https://devfeed.tech/tags/go-blockchain.md>), [go-types](<https://devfeed.tech/tags/go-types.md>), [json](<https://devfeed.tech/tags/json.md>), [load](<https://devfeed.tech/tags/load.md>), [types](<https://devfeed.tech/tags/types.md>), [video](<https://devfeed.tech/tags/video.md>)

### AI overview

This video explains how to define Go types for a blockchain's genesis record and load the blockchain's settings from a JSON file. It also discusses choosing suitable built-in types for struct fields, including limitations of uint64.

### Source excerpt

Introduction In episode 9, Bill introduced the idea of the genesis record and its role in his blockchain. As a recap, the genesis record will be used to customize the settings of his blockchain. The approach Bill takes here is similar to how Ethereum operates because he is storing the record in JSON format. In this video, Bill starts by defining the Go types his blockchain will use. The first type he defines will represent the genesis record. This type will be populated by the data found in the genesis record and will ensure Bill reaps all the benefits of using strongly typed language. Before he proceeds with the next type definition, he highlights the possible limitations he can encounter by using type uint64. Watch to learn how to write idiomatic and durable Go code that will load your blockchain's settings from disk.

## Ethereum Identity Verification with ECDSA for a Decentralized Blockchain

DevFeed: [Ethereum Identity Verification with ECDSA for a Decentralized Blockchain](<https://devfeed.tech/articles/ultimate-go-advanced-engineering-episode-11-22200.md>)

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

Published: 2023-01-03T00: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>), [Ethereum](<https://devfeed.tech/topics/ethereum.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>)

Tags: [bitcoin](<https://devfeed.tech/tags/bitcoin.md>), [blockchain](<https://devfeed.tech/tags/blockchain.md>), [blockchain-asset](<https://devfeed.tech/tags/blockchain-asset.md>), [digital-signature](<https://devfeed.tech/tags/digital-signature.md>), [distributed](<https://devfeed.tech/tags/distributed.md>), [ecdsa](<https://devfeed.tech/tags/ecdsa.md>), [ecdsa-encryption](<https://devfeed.tech/tags/ecdsa-encryption.md>), [encryption](<https://devfeed.tech/tags/encryption.md>), [ethereum](<https://devfeed.tech/tags/ethereum.md>), [ethereum-authentication](<https://devfeed.tech/tags/ethereum-authentication.md>), [genesis-record](<https://devfeed.tech/tags/genesis-record.md>), [go-blockchain](<https://devfeed.tech/tags/go-blockchain.md>), [identity](<https://devfeed.tech/tags/identity.md>), [identity-management](<https://devfeed.tech/tags/identity-management.md>), [verification](<https://devfeed.tech/tags/verification.md>)

### AI overview

This video tutorial explores how Ethereum confirms user identity and explains how ECDSA can verify transaction authenticity without relying on a central key store.

### Source excerpt

Introduction In episode 10, Bill dove into the technical implementation of his genesis record and defined a custom Go type representing the record. While doing so, he provided an in-depth look at the reasoning behind the fields he included.. After declaring this type, Bill wrote a function that loads the genesis record from disk and onto memory. His function will use the standard library encoding/json package to load JSON data from a hard-coded file path.

## Smart Contracts Using Solidity and Go: Basic Contract

DevFeed: [Smart Contracts Using Solidity and Go: Basic Contract](<https://devfeed.tech/articles/smart-contracts-using-solidity-and-go-basic-contract-22186.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2022/12/smart-contract-solidity-go-basic.html>)

Published: 2022-12-21T00: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>), [Solidity](<https://devfeed.tech/topics/solidity.md>), [Ethereum](<https://devfeed.tech/topics/ethereum.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [blockchain](<https://devfeed.tech/tags/blockchain.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>), [how-to](<https://devfeed.tech/tags/how-to.md>), [programming-language](<https://devfeed.tech/tags/programming-language.md>), [smart-contract](<https://devfeed.tech/tags/smart-contract.md>), [tests](<https://devfeed.tech/tags/tests.md>)

### AI overview

A tutorial on using Go to create and test basic Solidity smart contracts for Ethereum. It explains how smart contracts expose APIs and manage mutable storage on a blockchain, then focuses on testing a contract API against a simulated Ethereum node.

### Source excerpt

Introduction I made it my mission in 2022 to learn everything I could about blockchain and as the year ends, I feel like I accomplished my goal. Love it, hate it, or don't want to know nothing about it, I think it's important to push your opinions aside and understand how this technology works. Even with the current collapse of several large crypto companies in 2022, blockchain isn't going to disappear. Bitcoin and Ethereum are here to stay. If anything, this past year has shown how entrenched blockchain has become in the world and in people's lives.

## Ultimate Go: Advanced Engineering Episode 9

DevFeed: [Ultimate Go: Advanced Engineering Episode 9](<https://devfeed.tech/articles/ultimate-go-advanced-engineering-episode-9-22195.md>)

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

Published: 2022-12-20T00: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>), [Bitcoin](<https://devfeed.tech/topics/bitcoin.md>), [Ethereum](<https://devfeed.tech/topics/ethereum.md>)

Tags: [bitcoin](<https://devfeed.tech/tags/bitcoin.md>), [blockchain](<https://devfeed.tech/tags/blockchain.md>), [blockchain-asset](<https://devfeed.tech/tags/blockchain-asset.md>), [build](<https://devfeed.tech/tags/build.md>), [building](<https://devfeed.tech/tags/building.md>), [code](<https://devfeed.tech/tags/code.md>), [concepts](<https://devfeed.tech/tags/concepts.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [ethereum](<https://devfeed.tech/tags/ethereum.md>), [genesis](<https://devfeed.tech/tags/genesis.md>), [genesis-json](<https://devfeed.tech/tags/genesis-json.md>), [genesis-record](<https://devfeed.tech/tags/genesis-record.md>), [go](<https://devfeed.tech/tags/go.md>), [go-blockchain](<https://devfeed.tech/tags/go-blockchain.md>), [implement](<https://devfeed.tech/tags/implement.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [project](<https://devfeed.tech/tags/project.md>), [project-layout](<https://devfeed.tech/tags/project-layout.md>), [reuse](<https://devfeed.tech/tags/reuse.md>), [standard-library](<https://devfeed.tech/tags/standard-library.md>)

### AI overview

This video tutorial covers the initial layout of a blockchain project in Go, including creating a genesis record and explaining its role. It also introduces fundamental blockchain verifications.

### Source excerpt

Introduction In episode 8, Bill wanted to build a blockchain in Go and began to lay the groundwork for the project. Go is a good choice because its standard library has the necessary network and cryptographical functionality required to build a blockchain. Unlike the previous segment, Bill plans to use this blockchain to manage accounts and balances with hypothetical assets. Bill will reuse concepts from ethereum, bitcoin and the previous segment of the series to implement this blockchain.

## Building a Semantically Correct Blockchain in Go: Genesis Blocks and Asset On-Ramping

DevFeed: [Building a Semantically Correct Blockchain in Go: Genesis Blocks and Asset On-Ramping](<https://devfeed.tech/articles/ultimate-go-advanced-engineering-episode-8-22194.md>)

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

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

Content type: tutorial

Language: en

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

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [Blockchain](<https://devfeed.tech/topics/blockchain.md>), [Dependency management](<https://devfeed.tech/topics/dependency-management.md>), [Library](<https://devfeed.tech/topics/library.md>)

Tags: [blockchain](<https://devfeed.tech/tags/blockchain.md>), [blockchain-asset](<https://devfeed.tech/tags/blockchain-asset.md>), [blockchain-equity](<https://devfeed.tech/tags/blockchain-equity.md>), [dependency-management](<https://devfeed.tech/tags/dependency-management.md>), [ethereum](<https://devfeed.tech/tags/ethereum.md>), [genesis](<https://devfeed.tech/tags/genesis.md>), [genesis-block](<https://devfeed.tech/tags/genesis-block.md>), [go](<https://devfeed.tech/tags/go.md>), [go-blockchain](<https://devfeed.tech/tags/go-blockchain.md>), [standard-library](<https://devfeed.tech/tags/standard-library.md>), [video](<https://devfeed.tech/tags/video.md>)

### AI overview

This video explains how to build a semantically correct blockchain entirely with Go. It covers how a blockchain starts, the role of the genesis block, and how assets are introduced into the blockchain, while building on concepts from an earlier dependency-management example.

### Source excerpt

Introduction In the first part of the series, Bill designed a dependency management system. The dependency manager needed to be distributed, transparent, cryptographically auditable and scalable. To meet these requirements, Bill borrowed concepts from blockchain. He did this to illustrate how the blockchain can be repurposed and used to accomplish the mundane task of dependency management. While doing so, Bill indirectly highlighted the problems a blockchain solves. In the next segment of the series, Bill will build a semantically correct blockchain. He plans to perform this task entirely with Go and he'lll re-use the ideas described in the previous segment to further facilitate your understanding of what a blockchain is. Early on Bill admits he is no economist, and for the sake of the series he will use a hypothetical pot of gold as the starting equity for his blockchain. Follow along and learn how assets are "on-ramped" into the blockchain.

## Ultimate Go: Advanced Engineering Episode 7

DevFeed: [Ultimate Go: Advanced Engineering Episode 7](<https://devfeed.tech/articles/ultimate-go-advanced-engineering-episode-7-22193.md>)

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

Published: 2022-12-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>), [Databases](<https://devfeed.tech/topics/databases.md>), [Data structures](<https://devfeed.tech/topics/data-structures.md>), [Algorithms](<https://devfeed.tech/topics/algorithms.md>)

Tags: [2](<https://devfeed.tech/tags/2.md>), [audits](<https://devfeed.tech/tags/audits.md>), [batch](<https://devfeed.tech/tags/batch.md>), [batch-insert](<https://devfeed.tech/tags/batch-insert.md>), [bulk-upload](<https://devfeed.tech/tags/bulk-upload.md>), [caching](<https://devfeed.tech/tags/caching.md>), [consensus](<https://devfeed.tech/tags/consensus.md>), [consensus-algorithm](<https://devfeed.tech/tags/consensus-algorithm.md>), [data-structures](<https://devfeed.tech/tags/data-structures.md>), [databases](<https://devfeed.tech/tags/databases.md>), [distributed](<https://devfeed.tech/tags/distributed.md>), [efficiency](<https://devfeed.tech/tags/efficiency.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [go-blockchain](<https://devfeed.tech/tags/go-blockchain.md>), [memory-pool](<https://devfeed.tech/tags/memory-pool.md>), [poa](<https://devfeed.tech/tags/poa.md>), [pos](<https://devfeed.tech/tags/pos.md>), [pow](<https://devfeed.tech/tags/pow.md>), [proof-of-authority](<https://devfeed.tech/tags/proof-of-authority.md>)

### AI overview

This video walkthrough explains how a proof-of-authority consensus mechanism affects a dependency manager's database throughput. It introduces a synchronized memory pool for queued records, reduces duplicate insertion work across nodes, and explains how batches of records become blockchain blocks and can be audited.

### Source excerpt

Introduction In episode 6, Bill gives an overview of what consensus algorithms are and how these algorithms ensure distributed databases are in sync. Moving forward Bill will adopt the proof of authority (PoA) algorithm as a means to determine which node has the ability to write the next record. To jog your memory, PoA is a consensus mechanism where identity is used as a stake. By implementing this algorithm, Bill will add transparency to his dependency manager as he is no longer the only user with the ability to add new records. The dependency manager now meets the teams' requirements for transparency, however, it will have low throughput since only one record can be shared and inserted at a time.

## Ultimate Go Episode 6: Blockchain Consensus Algorithms

DevFeed: [Ultimate Go Episode 6: Blockchain Consensus Algorithms](<https://devfeed.tech/articles/ultimate-go-advanced-engineering-episode-6-22192.md>)

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

Published: 2022-12-16T00: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>), [Algorithms](<https://devfeed.tech/topics/algorithms.md>), [Security](<https://devfeed.tech/topics/security.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [algorithms](<https://devfeed.tech/tags/algorithms.md>), [blockchain](<https://devfeed.tech/tags/blockchain.md>), [consensus](<https://devfeed.tech/tags/consensus.md>), [consensus-algorithm](<https://devfeed.tech/tags/consensus-algorithm.md>), [distributed](<https://devfeed.tech/tags/distributed.md>), [go-blockchain](<https://devfeed.tech/tags/go-blockchain.md>), [golang-blockchain](<https://devfeed.tech/tags/golang-blockchain.md>), [poa](<https://devfeed.tech/tags/poa.md>), [pos](<https://devfeed.tech/tags/pos.md>), [pow](<https://devfeed.tech/tags/pow.md>), [proof-of-authority](<https://devfeed.tech/tags/proof-of-authority.md>), [proof-of-work](<https://devfeed.tech/tags/proof-of-work.md>), [security](<https://devfeed.tech/tags/security.md>)

### AI overview

This video explains why proof of work can be inefficient as a blockchain grows, focusing on duplicated computation and energy consumption. It introduces proof of stake and proof of authority as alternative consensus algorithms and discusses their role in maintaining valid data in a distributed database.

### Source excerpt

Introduction In the last video, Bill left off talking about proof of work (PoW) algorithms. In a distributed and decentralized environment, PoW used to be the gold standard for a node to participate equitably in a Blockchain. However, with PoW as the number of nodes on the Blockchain increases, the amount of energy waste increases. This is because each node is performing the same computationally heavy calculation and only one node's energy usage is leveraged to write the next block.

## Ultimate Go: Advanced Engineering Episode 5

DevFeed: [Ultimate Go: Advanced Engineering Episode 5](<https://devfeed.tech/articles/ultimate-go-advanced-engineering-episode-5-22191.md>)

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

Published: 2022-12-16T00: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>), [Databases](<https://devfeed.tech/topics/databases.md>), [Replication](<https://devfeed.tech/topics/replication.md>)

Tags: [atomic](<https://devfeed.tech/tags/atomic.md>), [consensus](<https://devfeed.tech/tags/consensus.md>), [consensus-algorithm](<https://devfeed.tech/tags/consensus-algorithm.md>), [cryptographically-auditable](<https://devfeed.tech/tags/cryptographically-auditable.md>), [database](<https://devfeed.tech/tags/database.md>), [distributed](<https://devfeed.tech/tags/distributed.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [go-blockchain](<https://devfeed.tech/tags/go-blockchain.md>), [golang-blockchain](<https://devfeed.tech/tags/golang-blockchain.md>), [poa](<https://devfeed.tech/tags/poa.md>), [pos](<https://devfeed.tech/tags/pos.md>), [pow](<https://devfeed.tech/tags/pow.md>), [proof-of-authority](<https://devfeed.tech/tags/proof-of-authority.md>), [proof-of-work](<https://devfeed.tech/tags/proof-of-work.md>)

### AI overview

This video explains how to use blockchain concepts to design a distributed, auditable, synchronized, and scalable database for a dependency manager. It focuses on atomic writes, consensus, and a proof-of-work algorithm, while also discussing the inefficiency of proof of work and the emergence of proof of stake and proof of authority.

### Source excerpt

Introduction In case you missed episode 4, Bill attempted to integrate current database sharing solutions to solve the "database ownership" problem his dependency manager faces. He tried providing copies of the database, implementing a load balancer and replication. While performing these experiments, Bill identified the qualities his dependency manager's database needs to have for users to trust it. He closed episode 4 by stating that his dependency manager needs a database that is distributed, cryptographically auditable, synchronized and scalable. By implementing this Bill hoped to provide greater transparency for his dependency manager.

## Ultimate Go: Advanced Engineering Episode 3 -- Adding a Cryptographic Audit Trail to a Dependency Manager Database

DevFeed: [Ultimate Go: Advanced Engineering Episode 3 -- Adding a Cryptographic Audit Trail to a Dependency Manager Database](<https://devfeed.tech/articles/ultimate-go-advanced-engineering-episode-3-22189.md>)

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

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

Content type: tutorial

Language: en

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

Topics: [Database](<https://devfeed.tech/topics/database.md>), [audit trail](<https://devfeed.tech/topics/audit-trail.md>), [audit](<https://devfeed.tech/topics/audit.md>)

Tags: [audit](<https://devfeed.tech/tags/audit.md>), [audit-trail](<https://devfeed.tech/tags/audit-trail.md>), [cryptographic-audit](<https://devfeed.tech/tags/cryptographic-audit.md>), [cryptographically-auditable](<https://devfeed.tech/tags/cryptographically-auditable.md>), [database](<https://devfeed.tech/tags/database.md>), [genesis-record](<https://devfeed.tech/tags/genesis-record.md>), [go-blockchain](<https://devfeed.tech/tags/go-blockchain.md>), [golang-blockchain](<https://devfeed.tech/tags/golang-blockchain.md>), [hash-algorithms](<https://devfeed.tech/tags/hash-algorithms.md>), [hashing](<https://devfeed.tech/tags/hashing.md>), [record-chaining](<https://devfeed.tech/tags/record-chaining.md>), [trust](<https://devfeed.tech/tags/trust.md>)

### AI overview

This video explains how to add a previous-record hash to a dependency manager database, chaining records into a cryptographic audit trail. Recomputed hashes can reveal database changes, while the genesis record has no previous hash.

### Source excerpt

Introduction In episode 2, Bill designed a database for his dependency manager to enable Go developers to have reproducible,durable and secure builds. This database will house the hash value for each of the dependencies stored. During runtime, these hash values are compared with the dependencies a user has locally. Bill's tool makes this comparison to make sure the user has the right version of the dependency. Each team making use of Bill's dependency manager will have access to its database, however, his database lacked any means to reliably perform audits.

## Sharing Control of a Dependency Manager's Database

DevFeed: [Sharing Control of a Dependency Manager's Database](<https://devfeed.tech/articles/ultimate-go-advanced-engineering-episode-4-22190.md>)

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

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

Content type: tutorial

Language: en

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

Topics: [Database](<https://devfeed.tech/topics/database.md>)

Tags: [audits](<https://devfeed.tech/tags/audits.md>), [data-ownership](<https://devfeed.tech/tags/data-ownership.md>), [data-rights](<https://devfeed.tech/tags/data-rights.md>), [database](<https://devfeed.tech/tags/database.md>), [gatekeeping](<https://devfeed.tech/tags/gatekeeping.md>), [go-blockchain](<https://devfeed.tech/tags/go-blockchain.md>), [golang-blockchain](<https://devfeed.tech/tags/golang-blockchain.md>), [load-balancing](<https://devfeed.tech/tags/load-balancing.md>), [master](<https://devfeed.tech/tags/master.md>), [privacy](<https://devfeed.tech/tags/privacy.md>), [replication](<https://devfeed.tech/tags/replication.md>), [sharding](<https://devfeed.tech/tags/sharding.md>), [slave](<https://devfeed.tech/tags/slave.md>), [sqlite](<https://devfeed.tech/tags/sqlite.md>)

### AI overview

This episode explores different methods for sharing control of a dependency manager's database. It examines the benefits, drawbacks, bottlenecks, and disadvantages of each approach, and explains why these methods fall short of solving the database ownership problem.

### Source excerpt

Introduction In episode 3, Bill needed to figure out how to share ownership of his dependency manager's database in a secure and efficient manner. Bill is the only stakeholder with full access to his dependency manager's database. That is, he is the only person with the ability to mutate the database. This is problematic because he can freely edit the database which will make it harder for other users to confidently perform audits. And as a result, reduce the perceived transparency of his dependency manager.

## Ultimate Go: Advanced Engineering Episode 2

DevFeed: [Ultimate Go: Advanced Engineering Episode 2](<https://devfeed.tech/articles/ultimate-go-advanced-engineering-episode-2-22188.md>)

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

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

Content type: tutorial

Language: en

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

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [Dependency management](<https://devfeed.tech/topics/dependency-management.md>), [Blockchain](<https://devfeed.tech/topics/blockchain.md>), [Algorithm](<https://devfeed.tech/topics/algorithm.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Database](<https://devfeed.tech/topics/database.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [blockchain](<https://devfeed.tech/tags/blockchain.md>), [cli](<https://devfeed.tech/tags/cli.md>), [database](<https://devfeed.tech/tags/database.md>), [dependency-management](<https://devfeed.tech/tags/dependency-management.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-algorithms](<https://devfeed.tech/tags/hash-algorithms.md>), [hash-collision](<https://devfeed.tech/tags/hash-collision.md>), [hashing](<https://devfeed.tech/tags/hashing.md>), [sha-256](<https://devfeed.tech/tags/sha-256.md>), [sha256](<https://devfeed.tech/tags/sha256.md>)

### AI overview

This video tutorial explains how dependency management in Go relates to reproducible builds, blockchain hashing, and trust in a centralized dependency database. It introduces hashes as distributed identifiers, explains collisions, and discusses the use of SHA-256 to reduce collision risk.

### Source excerpt

Introduction In episode 1, Bill finished by describing the dependency management conundrum Go faced in its early days. Prior to the Go team providing the module system, developers were on their own to find a solution. Engineers in the Go community did propose different solutions, but there was no general consensus on which tool to use for dependency management. In this video, Bill will begin to architect a solution to the reproducible build problem. By doing so, you will learn how blockchain hashing works and then Bill will share how centralizing this dependency database will cause other problems. One of these problems is people eventually losing trust in the database because only one stakeholder, Bill, can make changes to it without a means for users to detect the change. He closes this segment with an important question, "how do we establish trust for this CLI's database?"

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

[Next page](<https://devfeed.tech/tags/go-blockchain.md?cursor=WyIyMDIyLTA0LTE5VDAwOjAwOjAwKzAwOjAwIiwgIjVjOTY0NTYzLWJhZjktNDBhMS05YWZmLWYxNzczNWMwYjViMSJd>)