Note:
A first-class browsing experience for a decentralized internet built with web technologies and secured without third parties. Trustless HTTPS with native DANE support and a DNSSEC chain secured by a peer-to-peer light client.
- Beacon syncs block headers to retrive a verifiable merkle tree root.
- Requests proofs from peers to retrive a DNSSEC signed zone.
- Performs in-browser DNSSEC validation.
- Verifies certificates with DANE.
There are still lots of things we'd like to do. Contributions are welcome!
- Android & linux support
- Automatic updates using Omaha 4
- Signed binaries for windows
- Widevine support
- DNSSEC prefetching to reduce latency
- DANE support for ICANN domains
- Experiment with embedding a DNSSEC chain in x509 certificates and/or a TLS extension (RFC9102).
- Experiment with embedding HNS proofs in x509 certificates.
- Block internal Chrome telemetry & other privacy enhancements
- More tests
This repository does not contain the actual Chromium code it will be fetched using butil
.
Install chromium build depedencies for the target platform and then install butil
.
$ go install github.com/imperviousinc/beacon/tools/src/butil@latest
butil
is beacon's development utility. It helps you apply patches and do various overrides to chromium. Make sure it's in your path.
$ mkdir beacon && cd beacon
$ butil clone
$ butil init
This may take a while since init
will fetch chromium. Once it's done, this repo will be at src/beacon
$ butil build debug
butil
is just a wrapper around the actual tool. You can make changes to tools/src/realbutil
and it will get rebuilt automatically.
Make your modifications to chromium and when you are ready to transfer those into patches: Note: This will remove any patches that are no longer in chromium.
$ butil patches update
To remove a patch just undo the changes in chromium repo and call patches update again.
Beacon ports patches from Brave mainly for branding and shares a similar patching format/tooling with brave-core