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

Rebase ABCI domain types onto main #1203

Merged
merged 29 commits into from
Sep 28, 2022
Merged
Changes from 1 commit
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
3021889
split A.4.1, proto tooling changes
hdevalence Sep 20, 2022
38a5de3
split A.2, changelog abci
hdevalence Sep 20, 2022
b7f3125
split A.1, tendermint and abci changes
hdevalence Sep 20, 2022
8bc6a97
split A.3, abci-in-rpc
hdevalence Sep 20, 2022
3096775
clean up imports in abci crate
hdevalence Sep 20, 2022
e403925
Return to 0.34 ABCI encoding
hdevalence Aug 17, 2022
5de9425
Cherry-pick chrono changes
mzabaluev Dec 7, 2021
b9b6596
fixup! split A.3, abci-in-rpc
hdevalence Sep 20, 2022
c02739a
split A.4.1.1, check_event_attrs
hdevalence Sep 20, 2022
2e429e7
split A.4.1.2, some slice change?
hdevalence Sep 20, 2022
064fb82
split A.4.1.3, b.data.get(0).is_none()
hdevalence Sep 20, 2022
39f7210
split A.4.1.4, remove test attrs
hdevalence Sep 20, 2022
60dafb4
split A.4.1.5, someting optiony
hdevalence Sep 20, 2022
61e6bf5
clippy fix
hdevalence Sep 20, 2022
08a6a1e
Remove unnessarily generated files
mzabaluev Sep 22, 2022
ce30fe6
Fix deliver_tx.events KV tests
mzabaluev Sep 22, 2022
35b75fc
Remove Option wart in net_info::Response
mzabaluev Sep 22, 2022
9667148
rpc: Revert Event member events to a KV map
mzabaluev Sep 23, 2022
8f45e28
Merge branch 'main' into mikhail/abci-domain-types
mzabaluev Sep 23, 2022
3aba2d2
Revert tests to checking decoded KVs
mzabaluev Sep 23, 2022
6c38131
rpc: Restore base64 serialization of event KV tags
mzabaluev Sep 23, 2022
0ca7299
Post-merge fixes for rpc tests
mzabaluev Sep 23, 2022
3a92d77
rpc: Use the re-exported serializers mod
mzabaluev Sep 23, 2022
8d31c4e
Remove duplicate changelog entries
mzabaluev Sep 23, 2022
f9ae6a4
Fix kvstore-test build
mzabaluev Sep 23, 2022
308d060
Changelog entry for switching to Bytes
mzabaluev Sep 26, 2022
35e3fe5
Remove a commented out line
mzabaluev Sep 28, 2022
2a89abe
abci: Restore Client::set_option as deprecated
mzabaluev Sep 28, 2022
b21d86b
Update abci/src/client.rs
thanethomson Sep 28, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- `[tendermint-proto]` Use `Bytes` for byte array fields of ABCI protobuf types.
([#1203](https://github.com/informalsystems/tendermint-rs/pull/1203))
Comment on lines +1 to +2
Copy link
Contributor Author

@mzabaluev mzabaluev Sep 26, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@thanethomson I've added a notice about this change, but as stated already, I'm not sure we need to go ahead with it for 0.26. This is certainly unrelated to domain types, it's applied piecemeal to a single proto module not as a consistent change throughout tendermint-proto, and has the overall smell of a premature optimization.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is related to the domain types, because the ABCI domain types use Bytes internally, so unwinding this part of the ABCI domain types will break existing users of the ABCI domain types. This is not meaningfully a breaking change for anyone else, because there weren't users of the ABCI proto types other than the stub ABCI demo application. It's also not a breaking change relative to master, because this code has been merged on that branch (albeit unreleased) for about a year.

If this change is unwound out, you'll have to edit all of the ABCI domain types, and then all the users will have to edit all their uses of those domain types. I don't think it would be good to put this on the critical path for doing a semver release of the tendermint crates that contains ABCI domain types.

If the decision, later, is that the domain types should not use the Bytes type, it would be much better to do that as a later change that can be modeled with semver. (For the record, I don't think this is a good decision, but in any case I think it should be separate from getting this code backported as-is).

Copy link
Contributor Author

@mzabaluev mzabaluev Sep 26, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you @hdevalence for the detailed exposition.

As a late-to-the-scene comment, if I were into micro-optimizing domain type conversions to protobuf, I'd start with the Protobuf trait forcing a clone of the entire structure, because the domain-to-raw conversion is implemented via From<Self>, but the encode* methods take &self. But this is a subject for a larger rework.