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

[Epic] Ship RLN as part of non-native SDKs #88

Open
1 of 3 tasks
chair28980 opened this issue Sep 14, 2023 · 0 comments
Open
1 of 3 tasks

[Epic] Ship RLN as part of non-native SDKs #88

chair28980 opened this issue Sep 14, 2023 · 0 comments
Labels
E:RLN non-native SDKs See https://github.com/waku-org/pm/issues/88 for details Epic Tracks a sub-team Epic.

Comments

@chair28980
Copy link
Contributor

chair28980 commented Sep 14, 2023

Epic label: E:RLN non-native SDKs

Summary

While setting RLN to be enabled by default in go-waku, there were linking issues against the created library (libgowaku.a and .so). Specifically, when trying to link, errors popped up due to the absence of librln functions.

In the context of go-waku, if one uses the C library and it's not built with the gowaku_no_rln tag, there's a necessity to link against librln.

For nwaku, it seems the library libwaku doesn't currently include the rln library. Hence, the issue hasn't surfaced yet but might once RLN is included.

Current Solutions & Observations:

For go-waku C-Bindings, one solution is to add documentation directing users to download librln from zerokit. This is to avoid potential errors when concatenating libraries, especially since it gets complex with dynamic libraries.

In nwaku, when linking against .a, a similar error as go-waku has been observed.

The key challenge remains how to distribute both libwaku and librln. Combining static libraries is somewhat feasible by using ar (though hacky) but the same isn't possible with dynamic libraries.

There's a complication with the waku rust bindings too. As these bindings are a layer above the C bindings, it's unusual to link both the C library and librln, especially given both rust bindings and zerokit are in Rust.

Similar issues are observed for mobile packages, though a potential workaround could be surgically adding librln inside these packages.

Acceptance Criteria

Tasks

@chair28980 chair28980 added the Epic Tracks a sub-team Epic. label Sep 14, 2023
@chair28980 chair28980 added this to the Support Many Platforms milestone Sep 14, 2023
@fryorcraken fryorcraken added the E:RLN non-native SDKs See https://github.com/waku-org/pm/issues/88 for details label Sep 14, 2023
@chair28980 chair28980 removed this from the Support Many Platforms milestone Jun 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
E:RLN non-native SDKs See https://github.com/waku-org/pm/issues/88 for details Epic Tracks a sub-team Epic.
Projects
Status: No status
Development

No branches or pull requests

2 participants