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

CHIP-0026: New Wallet Sync Protocol #100

Open
wants to merge 7 commits into
base: main
Choose a base branch
from
Open

Conversation

Rigidity
Copy link
Contributor

@Rigidity Rigidity commented Mar 6, 2024

No description provided.

@danieljperry danieljperry changed the title [Draft] New Wallet Sync Protocol CHIP-0026: New Wallet Sync Protocol Mar 6, 2024
@danieljperry
Copy link
Contributor

CHIP-26 is now a Draft. It proposes a new set of protocol messages for syncing a light wallet against a full node. This CHIP will likely be of interest to all Chia wallet developers. Please leave your reviews as comments in this PR.

@forReason
Copy link

I support this chip because I am affected by the described problems.

However, I have not made a code review because im not familiar with the wallet internal code and protocols

@danieljperry
Copy link
Contributor

We will have a public Zoom call to discuss the details of this CHIP's design, as well as to answer any questions.
When: March 21 at
7 AM PDT
2 PM UTC
10 PM China

See the #chips channel in our Discord for more details.

@danieljperry
Copy link
Contributor

Here is the video from Brandon's discussion of this CHIP:
https://youtu.be/onIB-ikRJ-M

Please leave your reviews here soon. The implementation is nearly complete.

@Rigidity
Copy link
Contributor Author

Rigidity commented Mar 27, 2024

Update on this CHIP - I've removed AddPuzzleSubscriptions and AddCoinSubscriptions, since they were redundant. RequestCoinState and RequestPuzzleState both have a toggle to subscribe when you have been fully synced to the peak. And if you want to skip syncing coin states for RequestPuzzleState, you can disable both include_spent and include_unspent in the CoinStateFilter object.

So to simplify the protocol and reduce confusion, I've removed the subscribe-only messages. I have also added a reason to RejectCoinState and RejectPuzzleState, to where they will now reject the request if you exceed the subscription limit, in addition to when a reorg occurred. This is a change in behavior from before, where reaching the limit would be silently ignored.

The coin_ids and puzzle_hashes fields in the response of the request state messages will now only indicate which coin ids or puzzle hashes were actually processed and included in a query. Any request items which were not in the response should be requested separately. This allows implementors of the protocol to set their own limits, (hopefully) without breaking wallets that use the protocol.

Lastly, the mempool event (TransactionAdded and TransactionRemoved) functionality will not be in the initial implementation PR for this CHIP.

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

Successfully merging this pull request may close these issues.

None yet

3 participants