stacksgov / grants-program

Welcome to the Stacks Foundation Grant Program. Community members interested in submitting a grant proposal may do so by opening an issue in this repository and filling out the grant application.
140 stars 36 forks source link

WISHLIST GRANT: Extending the events emitted by a stacks node #291

Closed aulneau closed 2 years ago

aulneau commented 2 years ago

tldr: I'm hoping to find a rust engineer to implement some changes in the stacks node software, using this guidance.

Background I'm writing this wishlist grant with the hopes of finding someone or a team of folks who would be able to meaningfully contribute to the Stacks Blockchain code base. Specifically, there are some changes I think should be done around what kinds of events are emitted by a node. Currently, the events emitted are things like new blocks, new mempool transactions, etc. These events are then consumed by other applications (such as the Hiro API) to produce useful information.

The two areas in which I think new events should be emitted are:

I've received guidance from one of the core contributes to the stacks blockchain, and they were gracious enough to detail nearly exactly what steps need to be taken to complete this work: https://gist.github.com/aulneau/6df7e9dc8c63ad5ff7feb855825c68b9

Project Overview

Clarity state change events

It's possible for events to be emitted when any value changes within the clarity VM. This would be incredibly advantageous because it would allow for APIs and indexing services to be built that consume these events. These indexing services or APIs would then be able to expose historical changes to clarity state over time. Additionally, you'd be able to access (or correctly reproduce) any read-only values without needing to interact directly with a stacks node. The potential use cases of this are really endless, and I think would open up so many new possibilities for building sophisticated stacks based apps.

Contract calling other contracts

Currently, it's very hard to know the source of a contract-call. Contracts are composable, meaning other contracts can call other contracts. Some examples of this: any of the citycoins mining contracts, or stacking pools. It would be incredibly helpful to be able to know when this happens for a number of different use cases; I've specifically ran into this in my time running stacking.club

Budget, milestone, etc

I think this would be a hugely positive project, and something I've even considered personally funding. I think the impact would be wide ranging in the ultimate application of these changes in things like indexers and APIs. I would defer to whatever standard ranges would be for rust engineering.

stx-grant-bot[bot] commented 2 years ago

Thanks for submitting a grant proposal. Our team will review your submission and get back to you.

LNow commented 2 years ago

OK, you convinced me. I'll send a PR with my solution as I already have it ready:wink:

vidiabtc commented 2 years ago

OK, you convinced me. I'll send a PR with my solution as I already have it ready😉

WOOOOOOOOOOOOO that would be amazing

will-corcoran commented 2 years ago

Hello and thank you for participating in the Stacks Foundation Grants Program!

We are in the process of migrating from GitHub to the new Grants Dashboard. In order to complete your grant, you will need to submit any remaining Progress Review and/or Final Review requests through the Dashboard in order to receive your remaining payments.

Lastly, please note we are marking this grant 'closed' on GitHub for organizational purposes, but it is still 'open' on the Grants Dashboard.

Thanks and we hope to continue to support your efforts with additional grants!

Best, Will