beacon
beacon copied to clipboard
Beacon browser for desktop
Note: ⚠️ Beacon is still in beta use at your own risk.
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.
How it works
- 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.
TODOs
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
Development
This repository does not contain the actual Chromium code it will be fetched using butil.
Get started
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
Building
$ butil build debug
Updating butil
butil is just a wrapper around the actual tool. You can make changes to tools/src/realbutil
and it will get rebuilt automatically.
Making changes to Chromium
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.
Credits
Beacon ports patches from Brave mainly for branding and shares a similar patching format/tooling with brave-core