MCPcopy Index your code
hub / github.com/etclabscore/core-geth

github.com/etclabscore/core-geth @v1.12.22

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.12.22 ↗ · + Follow
19,483 symbols 97,083 edges 1,374 files 8,972 documented · 46%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

CoreGeth: An Ethereum Protocol Provider

An ethereum/go-ethereum downstream effort to make the Ethereum Protocol accessible and extensible for a diverse ecosystem.

Priority is given to reducing opinions around chain configuration, IP-based feature implementations, and API predictability. Upstream development from ethereum/go-ethereum is merged to this repository regularly, usually at every upstream tagged release. Every effort is made to maintain seamless compatibility with upstream source, including compatible RPC, JS, and CLI APIs, data storage locations and schemas, and, of course, interoperable node protocols. Applicable bug reports, bug fixes, features, and proposals should be made upstream whenever possible.

OpenRPC API Reference Go Report Card Travis Gitter

Network/provider comparison

Networks supported by the respective go-ethereum packaged geth program.

Ticker Consensus Network core-geth ethereum/go-ethereum
ETC :zap: Ethereum Classic :heavy_check_mark:
ETH :zap: Ethereum (Foundation) :heavy_check_mark: :heavy_check_mark:
- :zap: :handshake: Private chains :heavy_check_mark: :heavy_check_mark:
:zap: Mordor (Geth+Parity ETH PoW Testnet) :heavy_check_mark:
:zap: Morden (Geth+Parity ETH PoW Testnet)
:zap: Ropsten (Geth+Parity ETH PoW Testnet) :heavy_check_mark: :heavy_check_mark:
:handshake: Rinkeby (Geth-only ETH PoA Testnet) :heavy_check_mark: :heavy_check_mark:
:handshake: Goerli (Geth+Parity ETH PoA Testnet) :heavy_check_mark: :heavy_check_mark:
:handshake: Kovan (Parity-only ETH PoA Testnet)
Tobalaba (EWF Testnet)
Ephemeral development PoA network :heavy_check_mark: :heavy_check_mark:
MINTME :zap: MintMe.com Coin :heavy_check_mark:
  • :zap: = Proof of Work
  • :handshake: = Proof of Authority

1: This is originally an Ellaism Project. However, A recent hard fork makes Ellaism not feasible to support with go-ethereum any more. Existing Ellaism users are asked to switch to Parity.

2: Network not supported by default, but network configuration is possible. Make a PR!

Documentation

Contribution

Thank you for considering to help out with the source code! We welcome contributions from anyone on the internet, and are grateful for even the smallest of fixes!

If you'd like to contribute to core-geth, please fork, fix, commit and send a pull request for the maintainers to review and merge into the main code base. If you wish to submit more complex changes though, please check up with the core devs first on our gitter channel to ensure those changes are in line with the general philosophy of the project and/or get some early feedback which can make both your efforts much lighter as well as our review and merge procedures quick and simple.

Please make sure your contributions adhere to our coding guidelines:

  • Code must adhere to the official Go formatting guidelines (i.e. uses gofmt).
  • Code must be documented adhering to the official Go commentary guidelines.
  • Pull requests need to be based on and opened against the master branch.
  • Commit messages should be prefixed with the package(s) they modify.
  • E.g. "eth, rpc: make trace configs optional"

Please see the Developers' Guide for more details on configuring your environment, managing project dependencies, and testing procedures.

License

The core-geth library (i.e. all code outside of the cmd directory) is licensed under the GNU Lesser General Public License v3.0, also included in our repository in the COPYING.LESSER file.

The core-geth binaries (i.e. all code inside of the cmd directory) is licensed under the GNU General Public License v3.0, also included in our repository in the COPYING file.

Extension points exported contracts — how you extend this code

Subscription (Interface)
Subscription represents an event subscription where events are delivered on a data channel. [6 implementers]
interfaces.go
Encoder (Interface)
Encoder is implemented by types that require custom encoding rules or want to encode private fields. [15 implementers]
rlp/encode.go
EllipticCurve (Interface)
EllipticCurve contains curve operations. [8 implementers]
crypto/crypto.go
GaugeFloat64 (Interface)
GaugeFloat64 hold a float64 value that can be set arbitrarily. [19 implementers]
metrics/gauge_float64.go
Histogram (Interface)
Histogram calculates distribution statistics from a series of int64 values. [6 implementers]
metrics/histogram.go
Sample (Interface)
Samples maintain a statistically-significant selection of values from a stream. [6 implementers]
metrics/sample.go
GaugeInfo (Interface)
GaugeInfo holds a GaugeInfoValue value that can be set arbitrarily. [19 implementers]
metrics/gauge_info.go
Stoppable (Interface)
Stoppable defines the metrics which has to be stopped. [43 implementers]
metrics/registry.go

Core symbols most depended-on inside this repo

Errorf
called by 2776
internal/utesting/utesting.go
Fatalf
called by 1996
internal/utesting/utesting.go
Fatal
called by 1549
internal/utesting/utesting.go
New
called by 1403
log/logger.go
Hash
called by 1198
core/state/database.go
String
called by 649
p2p/nat/nat.go
Bytes
called by 619
core/types/bloom9.go
Error
called by 608
rpc/errors.go

Shape

Method 9,198
Function 7,995
Struct 1,694
Interface 228
TypeAlias 222
Class 80
FuncType 66

Languages

Go88%
TypeScript9%
C++1%
C1%
Java1%
Python1%

Modules by API surface

graphql/internal/graphiql/graphiql.min.js1,151 symbols
graphql/internal/graphiql/react-dom.production.min.js332 symbols
accounts/usbwallet/trezor/messages-management.pb.go300 symbols
params/types/genesisT/genesis.go248 symbols
params/types/ctypes/configurator_iface.go247 symbols
params/types/coregeth/chain_config_configurator.go219 symbols
params/types/goethereum/goethereum_configurator.go217 symbols
internal/jsre/deps/web3.js162 symbols
graphql/graphql.go145 symbols
accounts/usbwallet/trezor/messages-common.pb.go143 symbols
internal/ethapi/api.go136 symbols
core/blockchain_test.go134 symbols

For agents

$ claude mcp add core-geth \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page