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