BitClout core node

BitClout Logo

About BitClout

BitClout is a blockchain built from the ground up to support a fully-featured social network. Its architecture is similar to Bitcoin, only it supports complex social network data like profiles, posts, follows, creator coin transactions, and more.

Read about the vision

About this Repo

This repo contains all of the consensus code for the BitClout protocol. While it can technically be built and run as a stand-alone binary, it is mainly intended to be "composed" into other projects that want to build on top of BitClout. We provide multiple examples of how to do this in this README.

Building on BitClout Core

Below we provide a few real-world examples of how to compose BitClout core into your project.

Example 1: A BitClout Website (aka bitclout.com)

The code that powers bitclout.com is fully open-source such that anyone in the world can run it, and it consists of three repositories:

The repo that is most interesting for understanding the role of BitClout core is backend because it effectively includes core as a library and uses its public API to run a node. Then, it builds on core's basic functionality to expose a rich API of its own that can be used to construct transactions, submit transactions to the network, manage user data, and much more.

The backend repo's API is then utilized by frontend and identity, which are Angular apps that are served as the frontend to bitclout.com.

Example 2: A Rosetta API for Exchange Listing

Rosetta is an API developed by Coinbase and used by exchanges all over the world to list coins. For most modern exchanges, implementing a Rosetta API makes it a breeze to integrate a coin because all of their infrastructure can plug into a standardized interface.

Because exchanges have a different set of needs than what's required to run a BitClout web app, composing core allowed us to build a fully Dockerized Rosetta API that conforms perfectly to spec as its own self-contained service. This allows exchanges to integrate BitClout without having to run the unnecessary services associated with serving bitclout.com.

For more information on the BitClout Rosetta API, see our bitclout-rosetta repo here:

Example 3: A MongoDB Data Dumper

Another example of composing the core repo is the BitClout MongoDB Dumper.

This tool does the following:

  • It includes core as a library
  • It uses its embedded core code to download all of the blockchain data
  • It takes all of the blockchain data and indexes it into MongoDB

This gives users the ability to query all of the chain data using the MongoDB commandline tool, or to layer a product like Retool on top of it.

Running BitClout Core

Because core is intended to be composed into other projects, we suggest that users who want to run it start by reading the README in the backend repo mentioned previously. This repo provides instructions on how set up a dev environment for a full frontend and backend stack that can serve a full clone of bitclout.com with one's own custom feed.

We also provide a run repo that shows how to run this full stack in a fully Dockerized production environment.

Acknowledgements

The architecture for BitClout was heavily-inspired by Bitcoin. We also owe a debt of gratitude to the developers of btcd for producing a truly amazing Go Bitcoin client that served as a reference when building BitClout.

Comments
  • Postgres Sync halts at block 46631

    Postgres Sync halts at block 46631

    Using latest backend and Postgres which Hypersync set to false causes the backend to restarted every x seconds. Last processed block is 39120. No exceptions spotted so far

    part of log ` backend | I0508 10:10:03.886061 1 config.go:168] SnapshotBlockHeightPeriod: 1000 backend | I0508 10:10:03.886365 1 config.go:172] ArchivalMode: ON backend | I0508 10:10:03.886526 1 config.go:178] DisableSlowSync: OFF backend | I0508 10:10:03.886771 1 config.go:198] READ ONLY MODE backend | I0508 10:10:03.887080 1 config.go:206] IGNORING INBOUND INVS backend | I0508 10:10:03.887215 1 config.go:209] Max Inbound Peers: 125 backend | I0508 10:10:03.887326 1 config.go:210] Protocol listening on port 17000 backend | I0508 10:10:03.887417 1 config.go:216] Rate Limit Feerate: 0 backend | I0508 10:10:03.887529 1 config.go:217] Min Feerate: 1000 backend | I0508 10:10:03.903783 1 node.go:126] Looking for AddIPs: 0 backend | I0508 10:10:03.903805 1 node.go:131] Looking for DNSSeeds: 10 backend | badger 2022/05/08 10:10:22 INFO: All 0 tables opened in 0s backend | badger 2022/05/08 10:10:22 INFO: Discard stats nextEmptySlot: 0 backend | badger 2022/05/08 10:10:22 INFO: Set nextTxnTs to 78238 backend | badger 2022/05/08 10:10:22 INFO: Deleting empty file: /db/v-00000/badgerdb/000258.vlog backend | Migrations already up to date backend | I0508 10:10:24.588252 1 mempool.go:2262] Calling StartReadOnlyUtxoViewRegenerator... backend | I0508 10:10:24.588354 1 server.go:2304] Server.Start: Starting Server backend | I0508 10:10:24.589516 1 connection_manager.go:828] Full node socket initialized backend | I0508 10:10:24.590674 1 node.go:40] GlobalState BadgerDB Dir: /db/v-00000/badgerdb/global_state backend | I0508 10:10:24.590744 1 node.go:41] GlobalState BadgerDB ValueDir: /db/v-00000/badgerdb/global_state/badgerdb backend exited with code 137 backend | I0508 10:10:28.736972 1 config.go:151] Logging to directory /db/v-00000 backend | I0508 10:10:28.738364 1 config.go:152] Running node in MAINNET mode backend | I0508 10:10:28.738384 1 config.go:153] Data Directory: /db/v-00000

    ` Also see some SSLerrors with "https://api.blockchain.com/v3/exchange/tickers/CLOUT-USD

    backend | E0508 10:09:20.123602 1 base.go:142] GetBlockchainDotComExchangeRate: Problem with HTTP request https://api.blockchain.com/v3/exchange/tickers/CLOUT-USD: Get "https://api.blockchain.com/v3/exchange/tickers/CLOUT-USD": net/http: TLS handshake timeout Problem with HTTP request https://api.blockchain.com/v3/exchange/tickers/CLOUT-USD: Get "https://api.blockchain.com/v3/exchange/tickers/CLOUT-USD": net/http: TLS handshake timeout

    Not sure with exited with code 137 means.

  • SOFT FORK: Today, BitClout joins the environmental movement.

    SOFT FORK: Today, BitClout joins the environmental movement.

    I am proud to announce that the dev community has committed to moving to a zero-waste consensus mechanism, and that it is taking a major step in that direction with a new update.

    Cryptocurrencies have gotten a lot of heat recently for being harmful to the environment.

    This is due in large part to "proof of work," a consensus mechanism that burns CPU power to secure the network.

    BitClout has relied on proof of work to get off the ground, but since launching the dev community has already invested in consensus mechanisms that allow BitClout to operate on orders of magnitude less power than most existing proof of work cryptocurrencies.

    Now, in a show of solidarity with the environmental movement, and to take the first big step toward a zero-waste consensus mechanism, BitClout is deploying a new update that reduces its power consumption by a full order of magnitude.

    BitClout is reducing the block reward, and thus the amount of environmental waste its consensus mechanism incurs, by a factor of ten.

    This was a difficult change to make, and it took the input of several major node operators to deploy it safely.

    We understand that miners in particular may not like this change; however, there is now consensus around the decision to push the limits of the BitClout chain toward conservation rather than allowing the depletion of what are ultimately finite environmental resources.

    There is still more work to do to move to a zero-waste consensus mechanism without compromising on decentralization (e.g. full proof of stake).

    But the dev community is committed to getting there sooner rather than later, and we hope this change shows just how committed we are.

  • Postgres sync corrupts blocks from 98493

    Postgres sync corrupts blocks from 98493

    When doing a fresh sync with the latest version of backend / core. Fresh node, fresh DB blocks are not processed correctly from block 98493.

    Seems like some cache or array map index mismatch. Will check it out.

    See error:

    `I0205 11:21:58.422185 1 server.go:1147] Server._handleBlock: Received block ( 98492 / 101262 ) from Peer [ Remote Address: 34.123.41.111:17000 PeerID=1 ] I0205 11:21:58.661121 1 server.go:1147] Server._handleBlock: Received block ( 98493 / 101262 ) from Peer [ Remote Address: 34.123.41.111:17000 PeerID=1 ] panic: assignment to entry in nil map [recovered] panic: assignment to entry in nil map

    goroutine 116 [running]: github.com/go-pg/pg/v10.(*Tx).RunInTransaction.func1() /root/go/pkg/mod/github.com/go-pg/pg/[email protected]/tx.go:91 +0x86 panic({0x10a30a0, 0x16fdd80}) /usr/lib/go/src/runtime/panic.go:1038 +0x215 github.com/deso-protocol/core/lib.(*Postgres).flushPosts(0xa33af3, 0xc0bac47f90, 0xc0009e1680) /deso/src/core/lib/postgres.go:1462 +0x94a github.com/deso-protocol/core/lib.(*Postgres).FlushView.func1(0x0) /deso/src/core/lib/postgres.go:1303 +0x7d github.com/go-pg/pg/v10.(*Tx).RunInTransaction(0xc0bb0334c0, {0x172c7e8, 0xc00003a290}, 0xc0b3b1d638) /root/go/pkg/mod/github.com/go-pg/pg/[email protected]/tx.go:95 +0xa5 github.com/go-pg/pg/v10.(*baseDB).RunInTransaction(0xc00003a290, {0x172c7e8, 0xc00003a290}, 0xc0b3b1d688) /root/go/pkg/mod/github.com/go-pg/pg/[email protected]/tx.go:74 +0x51 github.com/deso-protocol/core/lib.(*Postgres).FlushView(0xb1df40, 0xc000010040) /deso/src/core/lib/postgres.go:1296 +0x57 github.com/deso-protocol/core/lib.(*UtxoView).FlushToDb(0xc0009e1680) /deso/src/core/lib/block_view_flush.go:16 +0x34 /deso/src/core/lib/blockchain.go:1942 +0x1946 github.com/deso-protocol/core/lib.(*Server)._handleBlock(0xc0002103c0, 0xc0003eed80, 0xc0bcf05110) /deso/src/core/lib/server.go:1193 +0x3e5 github.com/deso-protocol/core/lib.(*Server)._handlePeerMessages(0xc0002103c0, 0xc1128a2fc0) /deso/src/core/lib/server.go:1494 +0x18d github.com/deso-protocol/core/lib.(*Server).messageHandler(0xc0002103c0) /deso/src/core/lib/server.go:1534 +0x19c created by github.com/deso-protocol/core/lib.(*Server).Start /deso/src/core/lib/server.go:1710 +0xb1`

    Seems the issue is related to additional NFT royalties introduced after the hard fork. Error is related to this line https://github.com/deso-protocol/core/blob/main/lib/postgres.go#L1462

    This transaction 3JuEUKubpQdqioRRtyP7JrNV5Fo1FQ1iJ9QQDpCri1C59b15asubezin block 98493 has additional NFT royalties

    Might be a byte to string conversion issue. Seems like byte is expected but a string is used. Not sure. Need Go crash course

  • coin price bug

    coin price bug

    team,

    the salomon bug has been fixed however i'm still seeing accounts that their price are not making sense.

    https://github.com/bitclout/core/blob/2cbd77da61109303f3f961c227a414ab063a74d6/lib/constants.go#L78

    It seems the bug is not only happening on buy option but sell too.

    Please check https://bitclout.com/u/Petrh -> it seems the bug occurred in the sell option , different from salomon bug. https://bitcloutsignal.com/history/petrh

    Also please look at https://bitclout.com/u/speakinglight -> this seems to be like the salomon bug https://bitcloutsignal.com/history/speakinglight

    please look at this before we get more users onboarded, since this can be a significant challenge going forward if the creator coins are not always working correctly.

    this might be a UI problem and not blockchain, if we go to signalclout we can see their real price.

    petrh - should be around 555 usd speakinglight - should be around 268 usd

    thanks in advance!

  • Postgres block insert issue for block 46631

    Postgres block insert issue for block 46631

    When running a fresh postgres sync with backend:latest the backend hangs and keeps restarting at block 46631.

    Probably related to some recent changes. It´s the block with the first NFTs created it seems.

    `I0226 09:05:44.548962 1 server.go:1147] Server._handleBlock: Received block ( 46631 / 107387 ) from Peer [ Remote Address : 35.232.92.5:17000 PeerID=1 ] panic: runtime error: invalid memory address or nil pointer dereference [recovered] panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x49 pc=0xb1b525]

    goroutine 56 [running]: github.com/go-pg/pg/v10.(*Tx).RunInTransaction.func1() /root/go/pkg/mod/github.com/go-pg/pg/[email protected]/tx.go:91 +0x86 panic({0x10a56c0, 0x1e8a660}) /usr/lib/go/src/runtime/panic.go:1038 +0x215 github.com/deso-protocol/core/lib.(*Postgres).InsertTransactionsTx(0xc0016054b8, 0xc0016054c8, {0xc016be2000, 0xae4, 0xc0037c7c c0}, 0xc004e97780) /deso/src/core/lib/postgres.go:1092 +0x1b65 github.com/deso-protocol/core/lib.(*Postgres).UpsertBlockAndTransactions.func1(0x0) /deso/src/core/lib/postgres.go:1336 +0x98 github.com/go-pg/pg/v10.(*Tx).RunInTransaction(0xc0016eb280, {0x1730468, 0xc00003a280}, 0xc016cb4230) /root/go/pkg/mod/github.com/go-pg/pg/[email protected]/tx.go:95 +0xa5 github.com/go-pg/pg/v10.(*baseDB).RunInTransaction(0xc017fda798, {0x1730468, 0xc00003a280}, 0xc010586ea0) /root/go/pkg/mod/github.com/go-pg/pg/[email protected]/tx.go:74 +0x51 github.com/deso-protocol/core/lib.(*Postgres).UpsertBlockAndTransactions(0xc000168e10, 0xc010586ea0, 0xc017c22000) /deso/src/core/lib/postgres.go:1324 +0x5c github.com/deso-protocol/core/lib.(*Blockchain).ProcessBlock(0xc00082ebb0, 0xc010586ea0, 0xe5) /deso/src/core/lib/blockchain.go:1935 +0x191c github.com/deso-protocol/core/lib.(*Server)._handleBlock(0xc000fd80c0, 0xc001bb6d80, 0xc010586ea0) /deso/src/core/lib/server.go:1193 +0x3e5 github.com/deso-protocol/core/lib.(*Server)._handlePeerMessages(0xc000fd80c0, 0xc001bb6d80) /deso/src/core/lib/server.go:1494 +0x18d github.com/deso-protocol/core/lib.(*Server).messageHandler(0xc000fd80c0) /deso/src/core/lib/server.go:1534 +0x19c created by github.com/deso-protocol/core/lib.(*Server).Start /deso/src/core/lib/server.go:1710 +0xb1 `

    Will check what is causing it.

  • Postgres error halts / corrupts syncing from block 98475 related  to DAO TransferRestrictionStatus

    Postgres error halts / corrupts syncing from block 98475 related to DAO TransferRestrictionStatus

    During Postgres sync with the last Postgres Dao updates got this error:

    server.go:1147] Server._handleBlock: Received block ( 98475 / 98627 ) from Peer [ Remote Address: 34.123.41.111:17000 PeerID=32 ] E0126 08:54:21.794215 1 server.go:1141] Server._handleBlock: Encountered an error processing block <Header: < 98475, 00000000000058e8268e3ca270ab453fdd41382623c5ca30516d6ddf95b7b764, 1 >, Signer Key: BC1YLh768bVj2R3QpSiduxcvn7ipxF3L3XHsabZYtCGtsinUnNrZvNN>. Disconnecting from peer [ Remote Address: 34.123.41.111:17000 PeerID=32 ]: Error while processing block: : ProcessBlock: Problem upserting block and transactions: ERROR #23502 null value in column "transfer_restriction_status" violates not-null constraint

    Seem related to Dao coin insert/update at first glance. Related to DAOCoinTransferRestrictionStatus TransferRestrictionStatus pg:"dao_coin_transfer_restriction_status"

    When this block hits in the sync all blocks after get status 26 in pg_blocks.

    Looking for a solution or fix.

    So transfer_restriction_status SMALLINT NOT NULL seems to get a NULL value and rejects that. type PGMetadataDAOCoin struct { tableName struct{}pg:"pg_metadata_dao_coins"`

    TransactionHash           *BlockHash           `pg:",pk,type:bytea"`
    ProfilePublicKey          []byte               `pg:",type:bytea"`
    OperationType             DAOCoinOperationType `pg:",use_zero"`
    CoinsToMintNanos          string
    CoinsToBurnNanos          string
    TransferRestrictionStatus `pg:",use_zero"`
    

    }`

    Might be related to pg:",use_zero" for that enum type.

    Would transfer_restriction_status SMALLINT NOT NULL with DEFAULT 0 added solve the issue? Took me 2 days to sync to get to that point. Any ideas are welcome.

    This PR from @tijno brings us to block 98477 #201 But still seems something goes wrong with the status field

  • BitClout Improvement Proposals

    BitClout Improvement Proposals

    As BitClout development becomes increasingly community-driven, I believe it is time for the creation of a repository to draft and track BitClout Improvement Proposals (abbreviated BCIPs).

    Overall, the BitClout community is understanding of the need, early on, for the core development team to have very flexible control over the protocol. However, more and more of us in the development community are building real-world businesses on top of the BitClout protocol, and I believe it would be a benefit to everyone if such a BCIP system existed.

    This proposal calls for the creation of a repo at github.com/bitclout/bcips, similar to the equivalent repo within Bitcoin, github.com/bitcoin/bips.

    Individuals drafting proposals would simply fork the bitclout/bcips repo, create a folder and README for their proposal (bcip-001, bcip-002, etc), and submit a pull request back to the bitclout/bcips repo. It would be up to the core development team to edit and merge these proposals as they see fit.

    These proposals should be limited in scope to the core BitClout protocol, not the backend, frontend, or any other project.

    Thank you for your consideration.

  • SEV1 -- All 3rd Party Nodes are Down, main node transaction-info unresponsive

    SEV1 -- All 3rd Party Nodes are Down, main node transaction-info unresponsive

    Not sure where else to report this.

    All third party nodes are down, and transaction-info on the main node is throwing 502s.

    I am bitclout.com/u/smartalec

  • Postgres sync crashes on block 99415

    Postgres sync crashes on block 99415

    Postgres sync of latest build stops on block 99415 and keeps restarting. With fresh sync. Probably some nil value. Will debug

    `I0305 08:07:47.297285 1 server.go:1147] Server._handleBlock: Received block ( 99415 / 109439 ) from Peer [ Remote Address: 34.123.41.111:17000 PeerID=2 ] panic: runtime error: invalid memory address or nil pointer dereference [recovered] panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0xb26d7e]

    goroutine 64 [running]: github.com/go-pg/pg/v10.(*Tx).RunInTransaction.func1() /root/go/pkg/mod/github.com/go-pg/pg/[email protected]/tx.go:91 +0x86 panic({0x10b9580, 0x1eaa660}) /usr/lib/go/src/runtime/panic.go:1038 +0x215 github.com/deso-protocol/core/lib.(*Postgres).InsertTransactionsTx(0xc0017114b8,0xc0017114c8, {0xc0053de800, 0xb7, 0xc006142660}, 0xc009163540) /deso/src/core/lib/postgres.go:1119 +0x1c1e github.com/deso-protocol/core/lib.(*Postgres).UpsertBlockAndTransactions.func1(0x0) /deso/src/core/lib/postgres.go:1353 +0x98 github.com/go-pg/pg/v10.(*Tx).RunInTransaction(0xc005bf8580, {0x17493e8, 0xc00003a290}, 0xc0054e9f80) /root/go/pkg/mod/github.com/go-pg/pg/[email protected]/tx.go:95 +0xa5 github.com/go-pg/pg/v10.(*baseDB).RunInTransaction(0xc0053e3f68, {0x17493e8, 0xc00003a290}, 0xc001b0dc20) /root/go/pkg/mod/github.com/go-pg/pg/[email protected]/tx.go:74 +0x51 github.com/deso-protocol/core/lib.(*Postgres).UpsertBlockAndTransactions(0xc00540a2d0, 0xc001b0dc20, 0xc0056f6000) /deso/src/core/lib/postgres.go:1341 +0x5c`

  • Issue rendering images on nodes when hosting own node with GCP_BUCKET

    Issue rendering images on nodes when hosting own node with GCP_BUCKET

    Hey there, we have setup our node, setup GCP_BUCKET_NAME and GCP_CREDENTIALS_PATH, we're able to upload images to the GCP_BUCKET without issue,

    So far so good, buut I had to update the Caddy file to be able to display images from our bucket to mitigate CSP blocking on our node (adding our bucket address to the img-src - see the Caddyfile attached) . After that, we can display images on our own node, but other nodes (starting with bitclout.com) are not loading images with error "(blocked:csp)". Is there a way how to enable images from our gcp bucket or what is general approach to this when you host your own node and bucket storage?

    Post example: Our, working, node: https://node.flickapp.com/posts/8b2877038285a0e2ed59caa3228305f9e91ae0aee68a34ca2d2ac6a82a3530b3

    Bitclout node, same post is not displaying image with - (blocked:csp) https://bitclout.com/posts/8b2877038285a0e2ed59caa3228305f9e91ae0aee68a34ca2d2ac6a82a3530b3

    Any advice what we can setup to avoid image breakdown on other nodes?

    Caddyfile.dev.txt

    Thanks for any advice.

  • Pn/derived keys

    Pn/derived keys

    Core idea is we accept txns signed by non-owner (derived) keys in _verifySignatureDerived() which is called in _connectBasicTransfer() on signature verification. Client looks for all derived keys associated with the txn public key and checks if any of them matches the signature. With this approach, I'm not making any changes to how txns are sent. A derived key must first be authorized by sending a new TxnTypeAuthorizeDerivedKey transaction constructed in CreateAuthorizeDerivedKeyTxn(). When clients receive the Authorize txn, they connect it and modify the new PKIDToDerivedKeyEntry map in UtxoView. I also added a new prefix in the DB for Authorize entries. When we flush to the DB, we call _flushDerivedKeyEntryToDbWithTxn. Let me know if this makes sense!

    Note: I haven't written tests yet, and last time I checked, there was no YT tutorial on how to add a new txn to BitClout. So this is probably buggy :)

  • Revamping the transaction and signature tests for better readability, usability and extensibility

    Revamping the transaction and signature tests for better readability, usability and extensibility

    Validates total input, spend amount, change amount, fees, and error result computed from chain.AddInputsAndChangeToTransaction.

    @AeonSw4n Added tests to validate the output of AddInputsAndChangeToTransaction. Wrote this test as I was working through understanding how transactions, utxoviews, mining work in DeSo.

collection of tools to gleam insights from a full bitclout node's data
collection of tools to gleam insights from a full bitclout node's data

bitcloutscripts collection of tools to gleam insights from a full bitclout node's data bitcloutscripts $ ./bcs bcs posts # print all posts

Jul 11, 2021
Dump BitClout chain data into MongoDB

mongodb-dumper mongodb-dumper runs a full BitClout node and dumps the chain data into a MongoDB database Build Running the following commands will cre

Nov 30, 2022
Tendermint Core is a Byzantine Fault Tolerant (BFT) middleware that takes a state transition machine
Tendermint Core is a Byzantine Fault Tolerant (BFT) middleware that takes a state transition machine

Tendermint Core is a Byzantine Fault Tolerant (BFT) middleware that takes a state transition machine - written in any programming language - and securely replicates it on many machines.

Sep 8, 2022
Bitcoin Core integration/staging tree

Bitcoin Core integration/staging tree https://bitcoincore.org For an immediately usable, binary version of the Bitcoin Core software, see https://bitc

Dec 30, 2022
HPB-layer2 - An implmentation for PriBank core algorithm in Go

PriBankGo An implmentation for PriBank core algorithm in Go #1 Set user number i

Jan 5, 2022
Poweth - Etchash go module intended for use by core-pool (and open-ethereum-pool)

go-etchash Etchash go module intended for use by core-pool (and open-ethereum-po

Jan 20, 2022
Tendermint Core - A Byzantine Fault Tolerant (BFT) middleware that takes a state transition machine
Tendermint Core - A Byzantine Fault Tolerant (BFT) middleware that takes a state transition machine

Tendermint Core - A Byzantine Fault Tolerant (BFT) middleware that takes a state transition machine

Jan 25, 2022
A full node Bitcoin (BSV) implementation written in Go

bsvd bsvd is a full node Bitcoin (BSV) implementation written in Go (golang). This project is a port of the bchd codebase to Bitcoin (BSV). It provide

Dec 25, 2022
CLI Tool to remove unwanted connections from your Chia Node based on Geo IP Location.

chia-bouncer Tiny CLI tool to remove unwanted connections from your Chia Node based on the Geo IP Location (Country). The Tool is written in golang an

Jun 25, 2021
Celer cBridge relay node implementation in Golang

cBridge Relay Node Official implementation of cBridge relay node in Golang. Prerequisites Prepare Machine To run a cBridge relay node, it is recommend

Sep 27, 2022
Go Implementation of the Spacemesh protocol full node. 💾⏰💪
Go Implementation of the Spacemesh protocol full node. 💾⏰💪

A Programmable Cryptocurrency go-spacemesh ?? ⏰ ?? Thanks for your interest in this open source project. This repo is the go implementation of the Spa

Dec 29, 2022
Ethereum 2.0 node multiplexer between consensus and execution

The Minority Client Run the minority client! ~Danny Ryan and/or Tim Beiko As of writing, Ethereum has multiple client implementations, but Geth / go-e

Dec 23, 2022
The go-to Bitcoin Node (BN) Go library.

go-bitcoin Go wrapper for bitcoin RPC RPC services Start by creating a connection to a bitcoin node b, err := New("rcp host", rpc port, "rpc usernam

Feb 13, 2022
A fully validating Bitcoin node with Utreexo support

btcd btcd is an alternative full node bitcoin implementation written in Go (golang). This project is currently under active development and is in a Be

Dec 21, 2022
An ATNA (Audit Trail and Node Authentication) Cloud Backup Utility
An ATNA (Audit Trail and Node Authentication) Cloud Backup Utility

ATNA Vault ATNA Vault allows you to maintain a secure long-term archive for all your IHE audit messages. IHE vendors who can provide "filter forward"

Mar 13, 2022
Btc-globe - Visualize Bitcoin node locations using golang
Btc-globe - Visualize Bitcoin node locations using golang

btc-globe Visualize Bitcoin nodes by location using Golang

Jan 19, 2022
HTTP API for a BitClout node
HTTP API for a BitClout node

BitClout is a blockchain built from the ground up to support a fully-featured social network. Its architecture is similar to Bitcoin, only it supports complex social network data like profiles, posts, follows, creator coin transactions, and more.

Dec 24, 2022
collection of tools to gleam insights from a full bitclout node's data
collection of tools to gleam insights from a full bitclout node's data

bitcloutscripts collection of tools to gleam insights from a full bitclout node's data bitcloutscripts $ ./bcs bcs posts # print all posts

Jul 11, 2021
library to make building things with bitclout easy

cloutcli library to make building things with bitclout easy quick start demo cmd $ ./clout demo clout demo visualizegraph # make clout.gv graph fi

Jul 27, 2022