-
Notifications
You must be signed in to change notification settings - Fork 586
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
ICS24 Spec inconsistencies and improvements #28
Comments
On a related ICS24 minor code dedup note, func PathValidator(path string) error {
f := NewPathValidator(func(path string) error {
return nil
})
return f(path)
} Instead of duplicating the code in NewPathValidator |
This sounds good to me. We could split our
We can add documentation for this.
This needs to be updated in the spec, cosmos/cosmos-sdk#7873 we changed it recently to avoid redundancy
We don't prove capabilities on counterparty chains so I don't know if we need to add it? I think we just use this path as the name for the capability in x/capability cc @cwgoes |
The spec could still include it, although the access-control-mechanism is not necessarily shared by all chains (it's not a "requirement" of implementing the IBC protocol, just an optional component). |
The
The paths now match between spec and implementation.
The
I can't find the So the only thing left would be splitting the |
) * Status unit tests working * Add missing file * VerifyMembership is working * Fix time sent into VM and add more tests * Add back grandpa's status unit tests, add tendermint update state on misbehaviour and check misbehaviour tests. * Add initialize and verify non membership tendermint unit tests * Add tendermint verify misbehaviour and header unit tests * Add all VerifyUpgradeAndUpdateState tests and some more UpdateState tests. * Finished VerifyHeader and VerifyMisbehaviour tendermint unit tests. * Add tendermint unit tests for CheckSubstituteAndUpdate * Add tendermint pruning unit test * Add UpdateState unit tests with pruning which gives parity to ibc-go tendermint light client * Add tendermint export metadata unit test * Starting to add back commented out tests * Complete adding back all unit tests * Add tendermint light client wasm contract * Remove new parameter for wasm from NewCoordinator method * style: run go fmt * Use string from exported module * style: clean up usused test code and run linter
Surfaced from Informal Systems IBC Audit
Summary of Bug
The path space laid out in the ICS24 spec doesn't fully match the ics24 code. It also might be helpful if each path in the spec had a name (which could correspond to function names in the code), and if the code was a bit more clearly organized for direct comparison with the spec.
Presumably things to fix in the spec:
commitments/ports/{identifier}/channels/{identifier}/packets/{sequence}
in the spec iscommitments/ports/{identifier}/channels/{identifier}/sequences/{sequence}
in the code (and same for thereceipts/
andacks/
paths.ChannelCapabilityPath
in the code is missing from the specThere's also some redundancy in the code with prefix functions, like
PacketAcknowledgementPath
could usePacketAcknowledgementPrefixPath
andFullConsensusStatePath
could useConsensusStatePath
.For Admin Use
The text was updated successfully, but these errors were encountered: