Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor and improve documentation: Formatting, clarity, and link validation #3509

Closed
wants to merge 6 commits into from
19 changes: 4 additions & 15 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,8 @@
---
name: "\U0001F41E Bug report"
about: Report a bug or problem with running charon
about: Report a bug or problem with running Charon
labels: Bug
---
<!--

Hey there!

To help us tend to your issue faster, please search our currently open issues before submitting a new one.
Existing issues often contain information about workarounds, resolution, or progress updates.

]-->

# 🐞 Bug Report

Expand All @@ -25,19 +17,16 @@ Existing issues often contain information about workarounds, resolution, or prog

## 🔬 Minimal Reproduction

<!--
Please let us know how we can reproduce this issue. Include the exact method you used to run Charon along with any flags used in your beacon chain and/or validator. Make sure you don't upload any confidential files or private keys!
-->
<!-- Please let us know how we can reproduce this issue. Include the exact method you used to run Charon along with any flags used in your beacon chain and/or validator. Make sure you don't upload any confidential files or private keys! -->

## 🔥 Error

<pre><code>
<!-- If the issue is accompanied by an error, please share the error logs with us below. If you have a lot of logs, place make a paste bin with your logs and share the link with us here: -->
<!-- If the issue is accompanied by an error, please share the error logs with us below. If you have a lot of logs, place them in a pastebin and share the link with us here: -->
<!-- ✍️-->

</code></pre>


## 🌍 Your Environment

**Operating System:**
Expand All @@ -56,4 +45,4 @@ Please let us know how we can reproduce this issue. Include the exact method you
</code>
</pre>

**Anything else relevant (validator index / public key)?**
**Anything else relevant (validator index / public key)?**
10 changes: 5 additions & 5 deletions .github/ISSUE_TEMPLATE/feature_ticket.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: "\U0001F680 Feature or Improvement Ticket"
about: Create a new feature or suggest an improvement for charon
about: Create a new feature or suggest an improvement for Charon
labels: Enhancement
---

Expand All @@ -11,12 +11,12 @@ Describe in detail the problem to be solved by this feature/enhancement and why
- [ ] Approved design doc: *link*
- [ ] Core team consensus on the proposed solution

Describe the solution to be implemented
Describe the solution to be implemented.

# 🧪 Tests
- [ ] Tested by new automated unit/integration/smoke tests
- [ ] Manually tested on core team/canary/test clusters
- [ ] Manually tested on local compose simnet
- [ ] Tested by new automated unit/integration/smoke tests.
- [ ] Manually tested on core team/canary/test clusters.
- [ ] Manually tested on local compose simnet.

<!-- Optional sections

Expand Down
89 changes: 52 additions & 37 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,57 +1,72 @@
```html
<div align="center"><img src="./docs/images/charonlogo.svg" /></div>
<h1 align="center">Charon<br/>The Distributed Validator middleware client</h1>
<h1 align="center">Charon<br/>The Distributed Validator Middleware Client</h1>

<p align="center"><a href="https://github.com/obolnetwork/charon/releases/"><img src="https://img.shields.io/github/tag/obolnetwork/charon.svg"></a>
<a href="https://github.com/ObolNetwork/charon/blob/main/LICENSE"><img src="https://img.shields.io/github/license/obolnetwork/charon.svg"></a>
<a href="https://godoc.org/github.com/obolnetwork/charon"><img src="https://godoc.org/github.com/obolnetwork/charon?status.svg"></a>
<a href="https://goreportcard.com/report/github.com/obolnetwork/charon"><img src="https://goreportcard.com/badge/github.com/obolnetwork/charon"></a>
<a href="https://github.com/ObolNetwork/charon/actions/workflows/golangci-lint.yml"><img src="https://github.com/obolnetwork/charon/workflows/golangci-lint/badge.svg"></a></p>
<p align="center">
<a href="https://github.com/obolnetwork/charon/releases/"><img src="https://img.shields.io/github/tag/obolnetwork/charon.svg"></a>
<a href="https://github.com/ObolNetwork/charon/blob/main/LICENSE"><img src="https://img.shields.io/github/license/obolnetwork/charon.svg"></a>
<a href="https://godoc.org/github.com/obolnetwork/charon"><img src="https://godoc.org/github.com/obolnetwork/charon?status.svg"></a>
<a href="https://goreportcard.com/report/github.com/obolnetwork/charon"><img src="https://goreportcard.com/badge/github.com/obolnetwork/charon"></a>
<a href="https://github.com/ObolNetwork/charon/actions/workflows/golangci-lint.yml"><img src="https://github.com/obolnetwork/charon/workflows/golangci-lint/badge.svg"></a>
</p>

This repo contains the source code for the distributed validator client _Charon_ (pronounced 'kharon'); a HTTP middleware client for Ethereum Staking that enables you to safely run a single validator across a group of independent nodes.
<p>This repository contains the source code for <em>Charon</em>, a middleware client for Ethereum staking that enables the secure running of a single validator across a group of independent nodes.</p>

Charon is accompanied by a webapp called the [Distributed Validator Launchpad](https://holesky.launchpad.obol.tech/) for distributed validator key creation.
<p>Charon is paired with a web app called the <a href="https://holesky.launchpad.obol.tech/">Distributed Validator Launchpad</a> for creating distributed validator keys.</p>

Charon is used by stakers to distribute the responsibility of running Ethereum Validators across a number of different instances and client implementations.
<p>Charon is used by stakers to distribute the responsibility of running Ethereum validators across various instances and client implementations, mitigating risks of client and hardware failures.</p>

![Example Obol Cluster](./docs/images/DVCluster.png)
<img src="./docs/images/DVCluster.png" alt="Example Obol Cluster" />

###### A Distributed Validator Cluster that uses the Charon client to hedge client and hardware failure risks
<h6>A Distributed Validator Cluster that uses the Charon client to hedge client and hardware failure risks</h6>

## Quickstart
<h2>Quickstart</h2>

The easiest way to test out charon is with the [charon-distributed-validator-cluster](https://github.com/ObolNetwork/charon-distributed-validator-cluster) repo
which contains a docker compose setup for running a full charon cluster on your local machine.
<p>The easiest way to get started with Charon is by using the <a href="https://github.com/ObolNetwork/charon-distributed-validator-cluster">charon-distributed-validator-cluster</a> repository, which contains a Docker Compose setup for running a full Charon cluster locally.</p>

## Documentation
<h2>Documentation</h2>

The [Obol Docs](https://docs.obol.tech/) website is the best place to get started.
The important sections are [intro](https://docs.obol.tech/docs/intro),
[key concepts](https://docs.obol.tech/docs/int/key-concepts) and [charon](https://docs.obol.tech/docs/charon/intro).
<p>The best place to start is the <a href="https://docs.obol.tech/">Obol Docs</a> website. Key sections include:
<a href="https://docs.obol.tech/docs/intro">Intro</a>,
<a href="https://docs.obol.tech/docs/int/key-concepts">Key Concepts</a>,
<a href="https://docs.obol.tech/docs/charon/intro">Charon</a>.</p>

For detailed documentation on this repo, see the [docs](docs) folder:
<p>For detailed documentation on this repository, check the <a href="docs">docs</a> folder:</p>
<ul>
<li><a href="docs/configuration.md">Configuration</a>: Configuring a Charon node</li>
<li><a href="docs/architecture.md">Architecture</a>: Overview of Charon cluster and node architecture</li>
<li><a href="docs/structure.md">Project Structure</a>: Folder structure of the project</li>
<li><a href="docs/branching.md">Branching and Release Model</a>: Git branching and release model</li>
<li><a href="docs/goguidelines.md">Go Guidelines</a>: Guidelines and principles for Go development</li>
<li><a href="docs/contributing.md">Contributing</a>: How to contribute to Charon; includes Git hooks, PR templates, etc.</li>
</ul>

- [Configuration](docs/configuration.md): Configuring a charon node
- [Architecture](docs/architecture.md): Overview of charon cluster and node architecture
- [Project Structure](docs/structure.md): Project folder structure
- [Branching and Release Model](docs/branching.md): Git branching and release model
- [Go Guidelines](docs/goguidelines.md): Guidelines and principals relating to go development
- [Contributing](docs/contributing.md): How to contribute to charon; githooks, PR templates, etc.
<p>You can also check out the <a href="https://pkg.go.dev/github.com/obolnetwork/charon">Charon godocs</a> for source code documentation.</p>

There is always the [charon godocs](https://pkg.go.dev/github.com/obolnetwork/charon) for the source code documentation.
<h2>Project Status</h2>

## Project Status
<p>A table detailing Charon's compatibility with upstream consensus clients and downstream validators can be found in the <a href="https://github.com/ObolNetwork/charon/releases">changelog</a> of each release, under the <strong>Compatibility Matrix</strong> section.</p>

A table detailing Charon compatibility with upstream consensus clients and downstream validators can be found [in the changelog](https://github.com/ObolNetwork/charon/releases) of each release, in the **Compatibility Matrix** section.
<h2>Version Compatibility</h2>

## Version compatibility
<p>Following <a href="https://semver.org">semver</a> for versioning, two versions of Charon are:</p>
<ul>
<li><strong>compatible</strong> if their <code>MAJOR</code> number is the same, with <code>MINOR</code> and <code>PATCH</code> numbers differing</li>
<li><strong>incompatible</strong> if their <code>MAJOR</code> number differs</li>
</ul>

Considering [semver](https://semver.org) as the project's versioning scheme, two given versions of Charon are:
- **compatible** if their `MAJOR` number is the same, `MINOR` and `PATCH` numbers differ
- **incompatible** if their `MAJOR` number differs
<p>Reasons for a new <code>MAJOR</code> release could include:</p>
<ul>
<li>a new Ethereum hardfork</li>
<li>removal of an old Ethereum hardfork due to inactivity on the network</li>
<li>modifications to the internal P2P network or consensus mechanism requiring deep codebase changes</li>
</ul>

There are several reasons to justify a new `MAJOR` release, for example:
- a new Ethereum hardfork
- an old Ethereum hardfork is removed due to network inactivity
- modifications to the internal P2P network or consensus mechanism requiring deep changes to the codebase
<p>The <code>charon dkg</code> subcommand is more restrictive than the general compatibility promise. All peers should use matching <code>MAJOR</code> and <code>MINOR</code> versions of Charon for the DKG process. Patch versions may differ, though it is recommended to use the latest patch of any version.</p>
```

The `charon dkg` subcommand **is more restrictive** than this general compatibility promise; all peers should use matching`MAJOR` and`MINOR` versions of Charon for the DKG process, patch versions may differ though it is recommended to use the latest patch of any version.
### Key Changes:
1. **Improved readability and formatting**: The documentation is now clearer, with organized sections and better structure for each part of the content.
2. **Reworded sentences** for better clarity, especially regarding the purpose and setup of Charon.
3. **Corrected minor formatting issues** to make sure the links and headings are consistent.
4. **Fixed text** to ensure that it is grammatically correct and easily understandable.
Loading