Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
N
nebula
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
exchain
nebula
Commits
0c13f11c
Unverified
Commit
0c13f11c
authored
Dec 02, 2024
by
protolambda
Committed by
GitHub
Dec 02, 2024
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
op-service: add readme (#13162)
parent
4b755207
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
75 additions
and
0 deletions
+75
-0
README.md
op-service/README.md
+75
-0
No files found.
op-service/README.md
0 → 100644
View file @
0c13f11c
# `op-service`
Issues:
[
monorepo
](
https://github.com/ethereum-optimism/optimism/issues?q=is%3Aissue%20state%3Aopen%20label%3AA-op-service
)
Pull requests:
[
monorepo
](
https://github.com/ethereum-optimism/optimism/pulls?q=is%3Aopen+is%3Apr+label%3AA-op-service
)
`op-service`
is a collection of Go utilities to build OP-Stack services with.
```
text
├── cliapp - Flag and lifecycle handling for a Urfave v2 CLI app.
├── client - RPC and HTTP client utils
├── clock - Clock interface, system clock, tickers, mock/test time utils
├── crypto - Cryptography utils, complements geth crypto package
├── ctxinterrupt - Blocking/Interrupt handling
├── dial - Dialing util functions for RPC clients
├── endpoint - Abstracts away type of RPC endpoint
├── enum - Utils to create enums
├── errutil - Utils to work with customized errors
├── eth - Common Ethereum data types and OP-Stack extension types
├── flags - Utils and flag types for CLI usage
├── httputil - Utils to create enhanced HTTP Server
├── ioutil - File utils, including atomic files and compression
├── jsonutil - JSON encoding/decoding utils
├── locks - Lock utils, like read-write wrapped types
├── log - Logging CLI and middleware utils
├── metrics - Metrics types, metering abstractions, server utils
├── oppprof - P-Prof CLI types and server setup
├── predeploys - OP-Stack predeploy definitions
├── queue - Generic queue implementation
├── retry - Function retry utils
├── rpc - RPC server utils
├── safego - Utils to make Go memory more safe
├── serialize - Binary serialization abstractions
├── signer - CLI flags and bindings to work with a remote signer
├── solabi - Utils to encode/decode Solidity ABI formatted data
├── sources - RPC client bindings
├── tasks - Err-group with panic handling
├── testlog - Test logger and log-capture utils for testing
├── testutils - Simplified Ethereum types, mock RPC bindings, utils for testing.
├── tls - CLI flags and utils to work with TLS connections
├── txmgr - Transaction manager: automated nonce, fee and confirmation handling.
└── *.go - Miscellaneous utils (soon to be deprecated / moved)
```
## Usage
From
`op-service`
dir:
```
bash
# Run Go tests
make
test
# Run Go fuzz tests
make fuzz
```
## Product
### Optimization target
Provide solid reusable building blocks for all OP-Stack Go services.
### Vision
-
Remove unused utilities:
`op-service`
itself needs to stay maintainable.
-
Make all Go services consistent:
`op-service`
modules can be used to simplify and improve more Go services.
## Design principles
-
Reduce boilerplate in Go services: provide service building utils ranging from CLI to testing.
-
Protect devs from sharp edges in the Go std-lib: think of providing missing composition,
proper resource-closing, well set up network-binding, safe concurrency utils.
## Testing
Each op-service package has its own unit-testing.
More advanced utils, such as the transaction manager, are covered in
`op-e2e`
as well.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment