Ethereum consensus client in Rust
Go to file
Alexander Cyon 419c53bf24 Add flag 'log-color' preserving color of log redirected to file. (#3538)
Add flag 'log-color' which preserves colors of log when stdout is redirected to a file.

This is my first lighthouse PR, please let me know if I'm not following contribution guidelines, I welcome meta-feeback (feedback on git commit messages, git branch naming, and the contents of the description of this PR.)

## Issue Addressed

Solves https://github.com/sigp/lighthouse/issues/3527

## Proposed Changes

Adding a flag which enables log color preserving when stdout is redirected to a file.

### Usage
Below I demonstrate current behaviour (without using the new flag) and the new behaviur (when using new flag).

In the screenshot below, I have to panes, one on top running `lighthouse` which redirects to file `~/Desktop/test.log` and one pane in the bottom which runs `tail -f ~/Desktop/test.log`.

#### Current behaviour
```sh
lighthouse --network prater vc |& tee -a ~/Desktop/test.log
```

**Result is no colors**

<img width="1624" alt="current" src="https://user-images.githubusercontent.com/864410/188258226-bfcf8271-4c9e-474c-848e-ac92a60df25c.png">


#### New behaviour
```sh
lighthouse --network prater vc --log-color |& tee -a ~/Desktop/test.log
```

**Result is colors** 🔴🟢🔵🟡

<img width="1624" alt="new" src="https://user-images.githubusercontent.com/864410/188258223-7d9ecf09-92c8-4cba-8f24-bd4d88fc0353.png">

## Additional Info

I chose American spelling of "color" instead of Brittish "colour' since that was aligned with `slog`'s API - method`force_color()`, let me know if you prefer spelling "colour" instead. I also chose to let it be an arg not taking any argument, just like `logfile-compress` flag, rather than having to write `--log-color true`.
2022-09-06 05:58:27 +00:00
.github Docker builds in GitHub actions (#3523) 2022-08-29 18:31:27 +00:00
account_manager Builder Specs v0.2.0 (#3134) 2022-07-30 00:22:37 +00:00
beacon_node Configurable monitoring endpoint frequency (#3530) 2022-09-05 08:29:00 +00:00
book Update graffiti.md (#3537) 2022-09-05 08:29:02 +00:00
boot_node v3.1.0 (#3525) 2022-08-31 22:21:55 +00:00
common Configurable monitoring endpoint frequency (#3530) 2022-09-05 08:29:00 +00:00
consensus Strict count unrealized (#3522) 2022-09-05 04:50:47 +00:00
crypto crypto/bls: make blst dependency optional (#3387) 2022-08-08 23:56:59 +00:00
database_manager Use async code when interacting with EL (#3244) 2022-07-03 05:36:50 +00:00
lcli Add flag 'log-color' preserving color of log redirected to file. (#3538) 2022-09-06 05:58:27 +00:00
lighthouse Add flag 'log-color' preserving color of log redirected to file. (#3538) 2022-09-06 05:58:27 +00:00
scripts Builder Specs v0.2.0 (#3134) 2022-07-30 00:22:37 +00:00
slasher Modularise slasher backend (#3443) 2022-08-15 01:30:56 +00:00
testing Add flag 'log-color' preserving color of log redirected to file. (#3538) 2022-09-06 05:58:27 +00:00
validator_client Configurable monitoring endpoint frequency (#3530) 2022-09-05 08:29:00 +00:00
.dockerignore Exclude EE build dirs from Docker context (#3174) 2022-05-09 23:43:31 +00:00
.editorconfig Add editorconfig template 2019-03-11 15:09:57 +11:00
.gitignore Allow setting web3signer version through environment (#3368) 2022-07-27 03:20:01 +00:00
.gitmodules Replace EF tests submodule with a makefile 2019-09-08 04:19:54 +10:00
bors.toml Add merge support to simulator (#3292) 2022-07-18 23:15:40 +00:00
Cargo.lock Subscribe to subnets only when needed (#3419) 2022-09-05 00:22:48 +00:00
Cargo.toml Subscribe to subnets only when needed (#3419) 2022-09-05 00:22:48 +00:00
CONTRIBUTING.md [Contribution docs] Add GitPOAP Badge to Display Number of Minted GitPOAPs for Contributors (#3343) 2022-08-09 02:27:04 +00:00
Cross.toml Update Cross config for v0.2.2 (#3286) 2022-06-29 04:50:36 +00:00
Dockerfile docker rust version update (#3353) 2022-07-20 18:18:25 +00:00
Dockerfile.cross Use a stable tag for ubuntu in dockerfile (#3231) 2022-05-31 06:09:12 +00:00
LICENSE Update License to Apache 2.0 2019-04-15 16:47:35 +10:00
Makefile Modularise slasher backend (#3443) 2022-08-15 01:30:56 +00:00
README.md Remove build status badge from README (#3195) 2022-05-20 05:02:14 +00:00
SECURITY.md Add how users should report security vulnerabilities for this repository (#2562) 2021-09-07 01:54:05 +00:00

Lighthouse: Ethereum consensus client

An open-source Ethereum consensus client, written in Rust and maintained by Sigma Prime.

Book Status Chat Badge

Documentation

Banner

Overview

Lighthouse is:

  • Ready for use on Ethereum consensus mainnet.
  • Fully open-source, licensed under Apache 2.0.
  • Security-focused. Fuzzing techniques have been continuously applied and several external security reviews have been performed.
  • Built in Rust, a modern language providing unique safety guarantees and excellent performance (comparable to C++).
  • Funded by various organisations, including Sigma Prime, the Ethereum Foundation, ConsenSys, the Decentralization Foundation and private individuals.
  • Actively involved in the specification and security analysis of the Ethereum proof-of-stake consensus specification.

Staking Deposit Contract

The Lighthouse team acknowledges 0x00000000219ab540356cBB839Cbe05303d7705Fa as the canonical staking deposit contract address.

Documentation

The Lighthouse Book contains information for users and developers.

The Lighthouse team maintains a blog at lighthouse-blog.sigmaprime.io which contains periodical progress updates, roadmap insights and interesting findings.

Branches

Lighthouse maintains two permanent branches:

  • stable: Always points to the latest stable release.
    • This is ideal for most users.
  • unstable: Used for development, contains the latest PRs.
    • Developers should base their PRs on this branch.

Contributing

Lighthouse welcomes contributors.

If you are looking to contribute, please head to the Contributing section of the Lighthouse book.

Contact

The best place for discussion is the Lighthouse Discord server.

Sign up to the Lighthouse Development Updates mailing list for email notifications about releases, network status and other important information.

Encrypt sensitive messages using our PGP key.

Donations

Lighthouse is an open-source project and a public good. Funding public goods is hard and we're grateful for the donations we receive from the community via:

  • Gitcoin Grants.
  • Ethereum address: 0x25c4a76E7d118705e7Ea2e9b7d8C59930d8aCD3b (donation.sigmaprime.eth).