DeSo is a blockchain built from the ground up to support a fully-featured social network

DeSo Logo

About DeSo

DeSo 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 DeSo 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 DeSo. We provide multiple examples of how to do this in this README.

Building on DeSo Core

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

Example 1: A Standard DeSo App (e.g. bitclout.com or flickapp.com)

The code that powers DeSo apps like 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 DeSo core is backend because it effectively includes core as a library 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 apps like 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 DeSo 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 DeSo without having to run the unnecessary services associated with serving bitclout.com.

For more information on the DeSo Rosetta API, see our rosetta-deso repo here:

Example 3: A MongoDB Data Dumper

Another example of composing the core repo is the DeSo 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 DeSo 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 apps like 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 DeSo 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 DeSo.

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.

  • Bugs fix and improvements to Node.Start() and Node.Stop()

    Bugs fix and improvements to Node.Start() and Node.Stop()

    Context: I love the project and what it stands for. It's very important for an impactful and complex project like this to have great coverage of tests. I started working on writing unit and integration tests for the entire codebase. While I work on tests I'm fixing things as I find them. Here is the summary of the PR

    • Fixes https://github.com/deso-protocol/core/issues/413
    • Making Node.IsRunning flag atomic.
    • Renaming test utility functions for better readability.
    • Utility functions for changing the status of the node.
    • Unit tests for the utility functions.
Related tags
HTTP API for a DeSo node

About DeSo DeSo is a blockchain built from the ground up to support a fully-featured social network. Its architecture is similar to Bitcoin, only it s

Dec 24, 2022
gqlgenc is a fully featured go gql client, powered by codegen

gqlgenc Note: ⚠️ This is a WIP, backward-compatibility cannot be guaranteed yet, use at your own risk gqlgenc is a fully featured go gql client, power

Sep 17, 2022
Plants social network
Plants social network

Plantbook, plants social network. For generate plantbook-server nedd to be installed go-swagger#install # after change spec run command below... swagg

Jun 20, 2021
Our aim is to expand the capabilities of blockchain and make a secure way for transferring NFT between RMRK and MOVR blockchain.

remov Inspiration Our aim is to expand the capabilities of blockchain and make a secure way for transferring NFT between RMRK and MOVR blockchain. The

Jul 25, 2022
Package socket provides a low-level network connection type which integrates with Go's runtime network poller to provide asynchronous I/O and deadline support. MIT Licensed.

socket Package socket provides a low-level network connection type which integrates with Go's runtime network poller to provide asynchronous I/O and d

Dec 14, 2022
Xray, Penetrates Everything. Also the best v2ray-core, with XTLS support. Fully compatible configuration.

Project X Project X originates from XTLS protocol, provides a set of network tools such as Xray-core and Xray-flutter. License Mozilla Public License

Jan 7, 2023
GraphQL API server for galaxy powered blockchain network

ICICB GraphQL API Server GraphQL API server for galaxy powered blockchain network. Releases Please check the release tags to get more details and to d

Jan 5, 2022
[deprecated] A full-featured SPDY library for the Go language.

Deprecated With the release of Go1.6 and the addition of http2 to the standard library, this package is no longer under active development. It is high

Oct 1, 2022
Full-featured BitTorrent client package and utilities

torrent This repository implements BitTorrent-related packages and command-line utilities in Go. The emphasis is on use as a library from other projec

Jan 2, 2023
SwipeChain is a decentralised liquidity network built with CosmosSDK.

SwipeChain is a CosmosSDK-powered replicated state machine to coordinate asset movement for ASGARDEX, including processing swaps, stakes and more. SwipeChain does not peg assets, it simply determines how to move them.

Jul 2, 2022
🌐 (Web 3.0) Pastebin built on IPFS, securely served by Distributed Web and Edge Network.
🌐 (Web 3.0) Pastebin built on IPFS, securely served by Distributed Web and Edge Network.

pastebin-ipfs 简体中文 (IPFS Archivists) Still in development, Pull Requests are welcomed. Pastebin built on IPFS, securely served by Distributed Web and

Jan 1, 2023
LNC is a lightning network capital management tool built for routing nodes.

LNC is a lightning network capital management tool built for routing nodes.

Dec 21, 2021
Go built-in package network address wrapper.

osnet Go built-in package network address wrapper. Installation go get -u github.com/coolstina/osnet functions IsIP: Check whether the IP address is r

Jan 10, 2022
🚀Gev is a lightweight, fast non-blocking TCP network library based on Reactor mode. Support custom protocols to quickly and easily build high-performance servers.
🚀Gev is a lightweight, fast non-blocking TCP network library based on Reactor mode. Support custom protocols to quickly and easily build high-performance servers.

gev 中文 | English gev is a lightweight, fast non-blocking TCP network library based on Reactor mode. Support custom protocols to quickly and easily bui

Jan 6, 2023
Designed to support DNS brute-forcing with a minimal number of network connections

Fast Use of DNS Resolvers Designed to support DNS brute-forcing with a minimal number of network connections. Installation go get -v -u github.com/caf

Dec 8, 2022
Magma is an open-source software platform that gives network operators an open, flexible and extendable mobile core network solution.
Magma is an open-source software platform that gives network operators an open, flexible and extendable mobile core network solution.

Connecting the Next Billion People Magma is an open-source software platform that gives network operators an open, flexible and extendable mobile core

Dec 31, 2022
Optimize Windows's network/NIC driver settings for NewTek's NDI(Network-Device-Interface).

windows-ndi-optimizer[WIP] Optimize Windows's network/NIC driver settings for NewTek's NDI(Network-Device-Interface). How it works This is batchfile d

Apr 15, 2022
A simple network analyzer that capture http network traffic
A simple network analyzer that capture http network traffic

httpcap A simple network analyzer that captures http network traffic. support Windows/MacOS/Linux/OpenWrt(x64) https only capture clienthello colorful

Oct 25, 2022
Zero Trust Network Communication Sentinel provides peer-to-peer, multi-protocol, automatic networking, cross-CDN and other features for network communication.
Zero Trust Network Communication Sentinel provides peer-to-peer, multi-protocol, automatic networking, cross-CDN and other features for network communication.

Thank you for your interest in ZASentinel ZASentinel helps organizations improve information security by providing a better and simpler way to protect

Nov 1, 2022