Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zen-eth/shisui
Ethereum Portal Network Client written in Go
https://github.com/zen-eth/shisui
eth ethereum go golang lightclient portal-network
Last synced: 29 days ago
JSON representation
Ethereum Portal Network Client written in Go
- Host: GitHub
- URL: https://github.com/zen-eth/shisui
- Owner: zen-eth
- License: mit
- Created: 2024-12-20T07:52:31.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2024-12-20T09:56:54.000Z (about 1 month ago)
- Last Synced: 2024-12-20T10:42:07.630Z (about 1 month ago)
- Topics: eth, ethereum, go, golang, lightclient, portal-network
- Language: Go
- Homepage: https://www.ethportal.net/clients/shisui
- Size: 7.39 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: history/accumulator.go
- License: LICENSE
Awesome Lists containing this project
README
# Shisui
[![CI](https://github.com/optimism-java/shisui2/actions/workflows/ci.yml/badge.svg)](https://github.com/optimism-java/shisui2/actions/workflows/ci.yml)
[![Discord](https://img.shields.io/badge/discord-join%20chat-blue.svg)](https://discord.gg/HBAgaHCBuY)Shisui is an [Ethereum portal client](https://github.com/ethereum/portal-network-specs) written in Go language based
on [go-ethereum](https://github.com/ethereum/go-ethereum).
The name is inspired by Uchiha Shisui from the anime Naruto, who is renowned as "Shisui of the Body Flicker".> **Note:** Shisui is still **under heavy development** and is not yet ready for production use.
## Building the source
For prerequisites and detailed build instructions please read
the [Installation Instructions](https://geth.ethereum.org/docs/getting-started/installing-geth).Building `shisui` requires both a Go (version 1.22 or later) and a C compiler. You can install
them using your favourite package manager. Once the dependencies are installed, run```shell
make shisui
```Also, you can build the docker image by running
```shell
make shisui-image
```## Running `shisui`
After building `shisui`, you can start the client by running
```shell
# supported options are list below
./build/bin/shisui
```Alternatively, you can run the docker image by running
```shell
docker run -d -p 8545:8545 -p 9009:9009/udp -e SHISUI_NAT=stun ghcr.io/optimism-java/shisui:latest# if you know your exiIp, replace by -e SHISUI_NAT=extip:${your ip}
```You can use the script below to check if the node has started correctly.
```shell
curl -X POST http://127.0.0.1:8545 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "discv5_nodeInfo",
"params": [],
"id": 0
}'
```### supported options
* `--rpc.addr` HTTP-RPC server listening addr
* `--rpc.port` HTTP-RPC server listening port(default: `8545`)
* `--data.dir` data dir of where the data file located(default: `./`)
* `--data.capacity` the capacity of the data stored, the unit is MB(default: `10GB`)
* `--nat` p2p address(default `none`)
* `none`, find local address
* `any` uses the first auto-detected mechanism
* `extip:77.12.33.4` will assume the local machine is reachable on the given IP
* `upnp` uses the Universal Plug and Play protocol
* `pmp` uses NAT-PMP with an auto-detected gateway address
* `pmp:192.168.0.1` uses NAT-PMP with the given gateway address
* `stun` uses stun server to find extip
* `--udp.addr` protocol UDP server listening port(default: `9009`)
* `--loglevel` loglevel of portal network, `1` to `5`, from `error` to `trace`(default: `1`)
* `--private.key` private key of p2p node, hex format without `0x` prifix
* `--bootnodes` bootnode of p2p network with ENR format, use `none` to config empty bootnodes
* `--networks` portal sub networks: history, beacon, stateall the options above can be set with envs.
the env is prefixed with `SHISUI` and change the `.` to `_`.
eg `--rpc.add` can be replaced with env `SHISUI_RPC_ADDR`
### Hardware Requirements
Minimum:
* CPU with 2+ cores
* 4GB RAM
* 1TB free storage space to sync the Mainnet
* 8 MBit/sec download Internet serviceRecommended:
* Fast CPU with 4+ cores
* 16GB+ RAM
* High-performance SSD with at least 1TB of free space
* 25+ MBit/sec download Internet service