github.com/deso-protocol/core@v1.2.9/README.md (about) 1 ![DeSo Logo](assets/camelcase_logo.svg) 2 3 # About DeSo 4 DeSo is a blockchain built from the ground up to support a fully-featured 5 social network. Its architecture is similar to Bitcoin, only it supports complex 6 social network data like profiles, posts, follows, creator coin transactions, and 7 more. 8 9 [Read about the vision](https://docs.deso.org/the-vision) 10 11 # About this Repo 12 13 This repo contains all of the consensus code for the DeSo protocol. While it can 14 technically be built and run as a stand-alone binary, it is mainly intended to be 15 "composed" into other projects that want to build on top of DeSo. We provide 16 multiple examples of how to do this in this README. 17 18 # Building on DeSo Core 19 20 Below we provide a few real-world examples of how to compose DeSo core into your project. 21 22 ## Example 1: A Standard DeSo App (e.g. [bitclout.com](https://bitclout.com) or [flickapp.com](https://flickapp.com)) 23 24 The code that powers DeSo apps like [bitclout.com](https://bitclout.com) is fully open-source 25 such that anyone in the world can run it, and it consists of three repositories: 26 * **[github.com/deso-protocol/backend](https://github.com/deso-protocol/backend)** 27 * **[github.com/deso-protocol/frontend](https://github.com/deso-protocol/frontend)** 28 * **[github.com/deso-protocol/identity](https://github.com/deso-protocol/identity)** 29 30 The repo that is most interesting for understanding the role of DeSo core is 31 [backend](https://github.com/deso-protocol/backend) because it effectively includes core 32 as a library to run a node. Then, it builds on core's basic functionality to expose 33 [a rich API](https://docs.deso.org/devs/backend-api) of its own that can be used to 34 construct transactions, submit transactions to the network, manage user data, and 35 much more. 36 37 The backend repo's API is then utilized by 38 [frontend](https://github.com/deso-protocol/frontend) and 39 [identity](https://github.com/deso-protocol/identity), which are Angular apps that are 40 served as the frontend to apps like [bitclout.com](https://bitclout.com). 41 42 ## Example 2: A Rosetta API for Exchange Listing 43 44 [Rosetta](https://rosetta-api.org) is an API developed by Coinbase and used by 45 exchanges all over the world to list coins. For most modern exchanges, implementing a 46 Rosetta API makes it a breeze to integrate a coin because all of their infrastructure 47 can plug into a standardized interface. 48 49 Because exchanges have a different set of needs than what's required to run a 50 DeSo web app, composing core allowed us 51 to build a fully Dockerized Rosetta API that conforms perfectly to spec as its own 52 self-contained service. This allows exchanges to integrate DeSo without having 53 to run the unnecessary services associated with serving bitclout.com. 54 55 For more information on the DeSo Rosetta API, see our rosetta-deso repo here: 56 * **[https://github.com/deso-protocol/rosetta-deso](https://github.com/deso-protocol/rosetta-deso)** 57 58 ## Example 3: A MongoDB Data Dumper 59 60 Another example of composing the core repo is the DeSo MongoDB Dumper. 61 * **[github.com/deso-protocol/mongodb-dumper](https://github.com/deso-protocol/mongodb-dumper)** 62 63 This tool does the following: 64 * It includes core as a library 65 * It uses its embedded core code to download all of the blockchain data 66 * It takes all of the blockchain data and indexes it into MongoDB 67 68 This gives users the ability to query all of the chain data using the MongoDB 69 commandline tool, or to layer a product like Retool on top of it. 70 71 # Running DeSo Core 72 73 Because core is intended to be composed into other projects, we suggest that 74 users who want to run it start by reading [the README in the backend repo](https://github.com/deso-protocol/backend) 75 mentioned previously. This repo provides instructions on how set up a dev environment 76 for a full frontend and backend stack that can serve a full clone 77 of apps like [bitclout.com](https://bitclout.com) with one's own custom feed. 78 79 We also provide a [run repo](https://github.com/deso-protocol/run) that shows how to 80 run this full stack in a fully Dockerized production environment. 81 82 # Acknowledgements 83 84 The architecture for DeSo was heavily-inspired by Bitcoin. We also owe a debt 85 of gratitude to the developers of [btcd](https://github.com/btcsuite/btcd) for 86 producing a truly amazing Go Bitcoin client that served as a reference when 87 building DeSo.