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

Project maintenance #135

Open
mooori opened this issue May 29, 2024 · 5 comments
Open

Project maintenance #135

mooori opened this issue May 29, 2024 · 5 comments

Comments

@mooori
Copy link
Contributor

mooori commented May 29, 2024

Offline @akhi3030 and I discussed that near-plugins would ideally be maintained by those using it. They are in the best position to make decisions on the direction of the project. Additionally, following my transfer to the Contract Runtime team, maintaining near-plugins does not align very well with my other tasks anymore.

As far as we know, currently the main users of near-plugins are:

This discussion is opened to explore how project maintenance can be transferred to and distributed among near-plugins users. You are welcome to share your thoughts and ideas.

It would be helpful if you could briefly describe how your team/organization is using near-plugins: Which projects depend on which of the plugins? Is functionality provided by near-plugins integral to the project or could it easily be replaced by custom code or another crate?

@vzctl
Copy link
Collaborator

vzctl commented May 30, 2024

Hey!

Currently Aurora is using near-plugins for the following projects:

Going forward we will be utilizing a separate controller contract pattern for privileged operations (hence near-plugins) by default.

We depend heavily on AccessControllable and we are actively ingesting access lists into Backstage for introspection and alerting using this plugin:

We are also including near-plugins in the scope of the bug bounty on AuditOne:

Having a standard ABI + a reference implementation for RBAC on NEAR is very important for developer experience and safety. OpenZeppelin fills this gap on EVM chains but there is no alternative to near-plugins on NEAR.

@mooori
Copy link
Contributor Author

mooori commented Jun 3, 2024

Thank you for the feedback @vzctl, great to see that near-plugins is used by these projects.

We depend heavily on AccessControllable and we are actively ingesting access lists into Backstage for introspection and alerting

Introspection functionality of the ACL plugin is based on iterators. It looks like near-sdk-rs is on a path to remove(?) iterable collections other than Vec:

The topic has also been discussed in this thread in near-plugins.

Not only for the ACL plugin, but also for smart contracts in general, iterating maps and sets seems like a common and important use case. Smart contracts can control for the cost of iterating NEAR storage, for example by pagination like we do in the ACL plugin. We might want to reach out to near-sdk-rs maintainers to find out more about the motivation of removing iterable maps/sets and to see if there is a way to keep them in the sdk.

@akhi3030
Copy link

akhi3030 commented Jun 3, 2024

We might want to reach out to near-sdk-rs maintainers to find out more about the motivation of removing iterable maps/sets and to see if there is a way to keep them in the sdk.

It might also be worth it to port the relevant data structures into near-plugins if the sdk is on the path of removal. That might just be the path of least resistance.

@akhi3030
Copy link

akhi3030 commented Jun 3, 2024

I had a chat with @karim-en about this issue and he is happy for the rainbow bridge to take ownership of this project. @karim-en: do you have thoughts on how to move forward with retaining the iterable data structures in near-plugins?

@mooori
Copy link
Contributor Author

mooori commented Jun 3, 2024

It might also be worth it to port the relevant data structures into near-plugins if the sdk is on the path of removal.

Overall maintaining some collections data structures in near-plugins and some in near-sdk-rs might be more workload compared to having all of them in a single repo. Overhead I can think of are maintaining duplicate testing infrastructure and docs for collections.

Also my gut feeling is that for the NEAR ecosystem as a whole, having a "complete" (including iteration) collections module in the sdk would be beneficial.

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

No branches or pull requests

3 participants