github.com/sunriselayer/sunrise-da@v0.13.1-sr3/README.md (about) 1 # Sunrise Node 2 3 [![Go Reference](https://pkg.go.dev/badge/github.com/sunriselayer/sunrise-da.svg)](https://pkg.go.dev/github.com/sunriselayer/sunrise-da) 4 [![GitHub release (latest by date including pre-releases)](https://img.shields.io/github/v/release/celestiaorg/celestia-node)](https://github.com/sunriselayer/sunrise-da/releases/latest) 5 [![Go CI](https://github.com/sunriselayer/sunrise-da/actions/workflows/go-ci.yml/badge.svg)](https://github.com/sunriselayer/sunrise-da/actions/workflows/go-ci.yml) 6 [![Go Report Card](https://goreportcard.com/badge/github.com/sunriselayer/sunrise-da)](https://goreportcard.com/report/github.com/sunriselayer/sunrise-da) 7 [![codecov](https://codecov.io/gh/celestiaorg/celestia-node/branch/main/graph/badge.svg?token=CWGA4RLDS9)](https://codecov.io/gh/celestiaorg/celestia-node) 8 9 Golang implementation of Sunrise's data availability node types (`light` | `full` | `bridge`). 10 11 The sunrise-da types described above comprise the sunrise data availability (DA) network. 12 13 The DA network wraps the sunrise-core consensus network by listening for blocks from the consensus network and making them digestible for data availability sampling (DAS). 14 15 Continue reading [here](https://blog.celestia.org/celestia-mvp-release-data-availability-sampling-light-clients) if you want to learn more about DAS and how it enables secure and scalable access to Sunrise chain data. 16 17 ## Table of Contents 18 19 - [Sunrise Node](#sunrise-da) 20 - [Table of Contents](#table-of-contents) 21 - [Minimum requirements](#minimum-requirements) 22 - [System Requirements](#system-requirements) 23 - [Installation](#installation) 24 - [API docs](#api-docs) 25 - [Node types](#node-types) 26 - [Run a node](#run-a-node) 27 - [Environment variables](#environment-variables) 28 - [Package-specific documentation](#package-specific-documentation) 29 - [Code of Conduct](#code-of-conduct) 30 31 ## Minimum requirements 32 33 | Requirement | Notes | 34 | ----------- |----------------| 35 | Go version | 1.22 or higher | 36 37 ## System Requirements 38 39 See the official docs page for system requirements per node type: 40 41 - [Bridge](https://docs.celestia.org/nodes/bridge-node#hardware-requirements) 42 - [Light](https://docs.celestia.org/nodes/light-node#hardware-requirements) 43 - [Full](https://docs.celestia.org/nodes/full-storage-node#hardware-requirements) 44 45 ## Installation 46 47 ```sh 48 git clone https://github.com/sunriselayer/sunrise-da.git 49 cd sunrise-da 50 make build 51 sudo make install 52 ``` 53 54 For more information on setting up a node and the hardware requirements needed, go visit our docs at <https://docs.celestia.org>. 55 56 ## API docs 57 58 The sunrise-da public API is documented [here](https://node-rpc-docs.celestia.org/). 59 60 ## Node types 61 62 - **Bridge** nodes - relay blocks from the sunrise consensus network to the sunrise data availability (DA) network 63 - **Full** nodes - fully reconstruct and store blocks by sampling the DA network for shares 64 - **Light** nodes - verify the availability of block data by sampling the DA network for shares 65 66 More information can be found [here](https://github.com/sunriselayer/sunrise-da/blob/main/docs/adr/adr-003-march2022-testnet.md#legend). 67 68 ## Run a node 69 70 `<node_type>` can be: `bridge`, `full` or `light`. 71 72 ```sh 73 sunrise-da <node_type> init 74 ``` 75 76 ```sh 77 sunrise-da <node_type> start 78 ``` 79 80 ## Network 81 82 - **Mainnet** - the main network of Sunrise. Use tokens with real value 83 - **Testnet** - This network is used to test operations on the mainnet. Normally, the same environment as the mainnet is provided, but tokens have no value 84 - **Private** - a network for testing new features. It may contain critical bugs. Do NOT normally use 85 86 ### Run a bridge node 87 88 Bridge nodes connect the data availability layer and the consensus layer. 89 90 ```sh 91 sunrise-da bridge init --core.ip <URI> --p2p.network <NETWORK> 92 ``` 93 94 The `--core.ip` gRPC port defaults to 9090. Normally, set up a RPC node running sunrise-app. 95 96 ```sh 97 sunrise-da bridge start --core.ip <URI> --p2p.network <NETWORK> 98 ``` 99 100 ### Run a full node 101 102 Full storage nodes are Sunrise nodes that store all the data. Full storage nodes send block shares, headers, and fraud proofs to light nodes. 103 104 ```sh 105 sunrise-da full init --p2p.network <NETWORK> 106 sunrise-da full start --core.ip <URI> --p2p.network <NETWORK> 107 ``` 108 109 Start a full node using RPC. The bridge and full nodes refer to [bootstrap.go](./nodebuilder/p2p/bootstrap.go). 110 111 ### Run a light node 112 113 Light nodes ensure data availability. This is the most common way to interact with Sunrise networks. It does NOT require large storage or high-speed connections. 114 115 ```sh 116 sunrise-da light init --p2p.network <NAME> 117 sunrise-da light start --core.ip <URI> --p2p.network <NAME> 118 ``` 119 120 ## Environment variables 121 122 | Variable | Explanation | Default value | Required | 123 | ----------------------- | ----------------------------------- | ------------- | -------- | 124 | `CELESTIA_BOOTSTRAPPER` | Start the node in bootstrapper mode | `false` | Optional | 125 126 ## Package-specific documentation 127 128 - [Header](./header/doc.go) 129 - [Share](./share/doc.go) 130 - [DAS](./das/doc.go) 131 132 ## Code of Conduct 133 134 See our Code of Conduct [here](https://docs.celestia.org/community/coc).