Go implementation of the Ethereum protocol
Find a file
Chen Kai db3778434a remove shisui code part2
Signed-off-by: Chen Kai <281165273grape@gmail.com>
2024-12-09 14:19:23 +08:00
.github remove code from shisui 2024-12-09 11:51:23 +08:00
accounts accounts/abi: fix MakeTopics mutation of big.Int inputs (#30785) 2024-11-25 13:34:50 +01:00
beacon all: exclude empty outputs in requests commitment (#30670) 2024-11-28 11:48:50 +01:00
build cmd/bootnode: remove bootnode utility (#30813) 2024-11-28 14:37:36 +01:00
cmd remove shisui code part2 2024-12-09 14:19:23 +08:00
common common: drop BigMin and BigMax, they pollute our dep graph (#30645) 2024-10-21 12:45:33 +03:00
consensus core, trie: verkle state processor tests (#30672) 2024-11-04 14:19:50 +01:00
console all: remove personal RPC namespace (#30704) 2024-11-02 14:10:35 +08:00
core trie/utils: ensure master can generate a correct genesis for kaustinen7 (#30856) 2024-12-06 12:14:05 +01:00
crypto crypto, tests/fuzzers: add gnark bn254 precompile methods for fuzzing (#30585) 2024-10-23 08:11:25 +02:00
docs docs: fix typo (#30740) 2024-11-11 12:14:18 +01:00
eth cmd/evm, eth/tracers: refactor structlogger and make it streaming (#30806) 2024-12-04 08:52:59 +01:00
ethclient eth/downloader: move SyncMode to package eth/ethconfig (#30847) 2024-12-03 09:30:26 +01:00
ethdb ethdb: refactor Database interface (#30693) 2024-10-29 10:32:40 +02:00
ethstats core, eth, ethstats: simplify chain head events (#30601) 2024-10-16 10:32:58 +03:00
event event: fix typo (#29749) 2024-05-10 19:44:07 +02:00
grafana Grafana dashboard and tutorial 2024-11-01 19:19:57 +08:00
graphql all: remove TerminalTotalDifficultyPassed (#30609) 2024-10-23 08:26:18 +02:00
internal remove shisui code part2 2024-12-09 14:19:23 +08:00
log all: fix issues with benchmarks (#30667) 2024-11-04 15:10:12 +01:00
metrics remove code from shisui 2024-12-09 11:51:23 +08:00
miner all: exclude empty outputs in requests commitment (#30670) 2024-11-28 11:48:50 +01:00
node remove shisui code part2 2024-12-09 14:19:23 +08:00
p2p feat:migrate and remove portal wire in p2p package 2024-11-26 12:19:30 +08:00
params remove shisui code part2 2024-12-09 14:19:23 +08:00
rlp all: get rid of custom MaxUint64 and MaxUint64 (#30636) 2024-10-20 14:41:51 +03:00
rpc rpc: run tests in parallel (#30384) 2024-11-19 13:43:33 +01:00
signer accounts/abi: fix MakeTopics mutation of big.Int inputs (#30785) 2024-11-25 13:34:50 +01:00
tests core: switch EVM tx context in ApplyMessage (#30809) 2024-11-29 15:39:42 +01:00
trie remove shisui code part2 2024-12-09 14:19:23 +08:00
triedb triedb/pathdb: track flat state changes in pathdb (snapshot integration pt 2) (#30643) 2024-11-29 19:30:45 +08:00
version version: fix typo in v1.14.13 release cycle name 2024-11-19 16:58:52 +01:00
.dockerignore cmd, internal/build, docker: advertise commit date in unstable build versions (#19522) 2019-05-08 16:44:28 +03:00
.gitattributes .gitattributes: enable solidity highlighting on github (#16425) 2018-04-03 15:21:24 +02:00
.gitignore gitignore: get rid of some relics (#30623) 2024-10-18 12:02:32 +03:00
.gitmodules tests: external evm benchmarks (#24050) 2022-01-28 08:47:19 +01:00
.golangci.yml build: update to golangci-lint 1.61.0 (#30587) 2024-10-14 19:25:22 +02:00
.mailmap .mailmap: remove invalid email address (#29163) 2024-03-04 21:58:25 +01:00
.travis.yml travis: build and upload RISC-V docker images too (#30739) 2024-11-08 18:20:48 +02:00
appveyor.yml appveyor, build, internal: ci.go cleanups, add package dep checker (#30696) 2024-10-29 13:21:17 +02:00
AUTHORS AUTHORS: remove one more duplicate entry (#24950) 2022-05-24 21:04:21 +02:00
circle.yml circleci: enable docker based hive testing 2016-07-15 16:07:34 +03:00
COPYING COYPING: restore the full text text of GPL (#21568) 2020-09-15 08:27:17 +02:00
COPYING.LESSER all: update license information 2015-07-07 14:12:44 +02:00
Dockerfile build: use buildx to build multi-platform docker images (#30530) 2024-09-30 15:39:53 +03:00
Dockerfile.alltools build: use buildx to build multi-platform docker images (#30530) 2024-09-30 15:39:53 +03:00
go.mod Merge branch 'gethmaster' into gethintegration 2024-12-08 22:31:04 +08:00
go.sum Merge branch 'gethmaster' into gethintegration 2024-12-08 22:31:04 +08:00
interfaces.go ethereum, ethclient: add blob transaction fields in CallMsg (#28989) 2024-02-15 10:08:46 +01:00
Makefile remove code from shisui 2024-12-09 11:51:23 +08:00
oss-fuzz.sh fuzzing: fix oss-fuzz fuzzer (#30845) 2024-12-02 15:43:17 +01:00
README.md cmd/bootnode: remove bootnode utility (#30813) 2024-11-28 14:37:36 +01:00
SECURITY.md docs: update security policy (#30606) 2024-10-23 15:12:56 +02:00

Shisui

AppVeyor Build (with branch) Discord

Shisui is an Ethereum portal client written in Go language based on 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.

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

make shisui

Also, you can build the docker image by running

make shisui-image

Running shisui

After building shisui, you can start the client by running

# supported options are list below
./build/bin/shisui

Alternatively, you can run the docker image by running

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.

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, state

all 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 service

Recommended:

  • Fast CPU with 4+ cores
  • 16GB+ RAM
  • High-performance SSD with at least 1TB of free space
  • 25+ MBit/sec download Internet service