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

Nimbus verified proxy integration #3282

Open
4 of 6 tasks
vitvly opened this issue Mar 14, 2023 · 1 comment
Open
4 of 6 tasks

Nimbus verified proxy integration #3282

vitvly opened this issue Mar 14, 2023 · 1 comment

Comments

@vitvly
Copy link
Contributor

vitvly commented Mar 14, 2023

Work has been ongoing for a while on integrating Nimbus verified proxy (nimbus-verified-proxy) client into status-go.

What is nimbus-verified-proxy?

This is an RPC proxy server which is part of nimbus-eth1 project. It can verify e.g. eth_getBalance responses that we receive from Infura or other third-party provider, by verifying cryptographic proofs obtained from Nimbus consensus client.

More detail here: https://notes.status.im/nimbus-light-proxy

Overview of integration with status-go

The project consists of several parts:

  1. nimbus-eth1 changes.
  2. Small Golang wrapper library for nimbus-verified-proxy.
  3. status-go changes.
  4. Client updates to the build process (both Nix scripts for status-mobile and Makefiles for status-desktop)

1. nimbus-eth1 changes

  • Add Makefile targets to build nimbus-verified-proxy as a [static-lib, dynamic-lib, unlinked-objs].
    Currently dynamic-lib and unlinked-objs targets work properly. Static lib builds are not working on macOS due to system's ar tool not processing linkerArgs.txt files (more detail here: Static linking problems on macOS nimbus-eth1#1500)
  • Modify nimbus-verified-proxy code to accept external C callbacks and JSON configuration instead of cmd-line parameters

Tinkered a bit with various GC settings, separate issue here: status-im/nimbus-eth1#1501.

PR: status-im/nimbus-eth1#1572

2. Golang wrapper library

3. status-go changes

4. Client updates

Current status

Rebased with Nim 1.6 changes in nimbus-eth1, working on:

  • trying to use unlinked-objs inside lc-proxy-wrapper, as static/dynamic lib approaches are problematic
  • status-desktop build changes
@Samyoul
Copy link
Member

Samyoul commented Mar 16, 2023

Wow @siphiuel this is looking very exciting! I'm really looking forward to seeing the results of all you work on this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants