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.