Skip to content

Commit

Permalink
Merge branch 'master' into romac/rm-all
Browse files Browse the repository at this point in the history
  • Loading branch information
romac committed Dec 3, 2020
2 parents b982032 + be001eb commit 878550e
Show file tree
Hide file tree
Showing 24 changed files with 908 additions and 692 deletions.
88 changes: 57 additions & 31 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,15 @@

## Unreleased Changes

Special thanks to external contributors for this release: @CharlyCst ([#347]).

## v0.0.5
*December 2, 2020*

This release focuses on implementing relayer and relayer-cli functionality towards a full v0 implementation.
We now have the full-stack implementation for supporting client creation & updates, as well as connection- and channel handshakes.
We also consolidated our TLA+ specs into an "IBC Core TLA+ specification," and added ICS 020 spec.

Special thanks to external contributors for this release: @CharlyCst ([#347], [#419]).

- [relayer-cli]
- Add `--all` option to `light rm` command to remove all peers for a given chain ([#431])
Expand All @@ -13,12 +21,14 @@ Special thanks to external contributors for this release: @CharlyCst ([#347]).

- Update to tendermint-rs version `0.17-RC3` ([#403])
- [changelog] Added "unreleased" section in `CHANGELOG.MD` to help streamline releases ([#274])
- [relayer] Integrate relayer spike into relayer crate ([#335])
- [modules]
- Implement flexible connection id selection ([#332])
- ICS 4 Domain Types for channel handshakes and packets ([#315], [#95])
- Introduce LightBlock support for MockContext ([#389])
- [relayer]
- [relayer]
- Retrieve account sequence information from a chain using a GRPC client (#337)
- Implementation of chain runtime for v0 ([#330])
- Integrate relayer spike into relayer crate ([#335])
- Implement `query_header_at_height` via plain RPC queries (no light client verification) ([#336])
- Implement the relayer logic for connection handshake messages ([#358], [#359], [#360])
- Implement the relayer logic for channel handshake messages ([#371], [#372], [#373], [#374])
Expand All @@ -27,56 +37,72 @@ Special thanks to external contributors for this release: @CharlyCst ([#347]).
- CLI for client update message ([#277])
- Implement the relayer CLI for connection handshake messages ([#358], [#359], [#360])
- Implement the relayer CLI for channel handshake messages ([#371], [#372], [#373], [#374])
- Added basic client, connection, and channel lifecyle in relayer v0 ([#376], [#377], [#378])
- Implement commands to add and list keys for a chain ([#363])
- Allow overriding peer_id, height and hash in light add command ([#428])
- Allow overriding of peer_id, height and hash in light add command ([#428])
- [proto-compiler]
- Refactor and allow specifying a commit at which the Cosmos SDK should be checked out ([#366])
- Add a `--tag` option to the `clone-sdk` command to check out a tag instead of a commit ([#369])
- [ibc-proto] Refactor and allow specifying a commit at which the Cosmos SDK should be checked out ([#366])
- Fix `--out` command line parameter (instead of `--path`) ([#419])
- [spec/relayer]
- ICS 020 spec in TLA+ ([#386])
- Prepare IBC Core TLA+ specs ([#404])

### IMPROVEMENTS

- [relayer]
- Pin chain runtime against Tokio 0.2 by downgrading for 0.3 to avoid dependency hell ([#415], follow up to [#402])
- [relayer-cli]
- Split tasks spawned by CLI commands into their own modules ([#331])
- V0 command implementation ([#346])
- [modules]
- Split `msgs.rs` of ICS002 in separate modules ([#367])
- Fixed inconsistent versioning for ICS003 and ICS004 ([#97])
- Fixed `get_sign_bytes` method for messages ([#98])
- Homogenize ConnectionReader trait so that all functions return owned objects ([#347])
- Align with tendermint-rs in the domain type definition of `block::Id` ([#338])


[#95]: https://github.com/informalsystems/ibc-rs/issues/95
[#97]: https://github.com/informalsystems/ibc-rs/issues/97
[#98]: https://github.com/informalsystems/ibc-rs/issues/98
[#274]: https://github.com/informalsystems/ibc-rs/issues/274
[#277]: https://github.com/informalsystems/ibc-rs/issues/277
[#315]: https://github.com/informalsystems/ibc-rs/issues/315
[#330]: https://github.com/informalsystems/ibc-rs/issues/330
[#332]: https://github.com/informalsystems/ibc-rs/issues/332
[#335]: https://github.com/informalsystems/ibc-rs/pulls/335
[#335]: https://github.com/informalsystems/ibc-rs/pull/335
[#336]: https://github.com/informalsystems/ibc-rs/issues/336
[#348]: https://github.com/informalsystems/ibc-rs/pulls/348
[#337]: https://github.com/informalsystems/ibc-rs/issues/337
[#338]: https://github.com/informalsystems/ibc-rs/issues/338
[#346]: https://github.com/informalsystems/ibc-rs/issues/346
[#347]: https://github.com/informalsystems/ibc-rs/issues/347
[#348]: https://github.com/informalsystems/ibc-rs/pull/348
[#358]: https://github.com/informalsystems/ibc-rs/issues/358
[#358]: https://github.com/informalsystems/ibc-rs/issues/359
[#358]: https://github.com/informalsystems/ibc-rs/issues/360
[#359]: https://github.com/informalsystems/ibc-rs/issues/359
[#360]: https://github.com/informalsystems/ibc-rs/issues/360
[#363]: https://github.com/informalsystems/ibc-rs/issues/363
[#366]: https://github.com/informalsystems/ibc-rs/issues/366
[#367]: https://github.com/informalsystems/ibc-rs/issues/367
[#368]: https://github.com/informalsystems/ibc-rs/issues/368
[#369]: https://github.com/informalsystems/ibc-rs/pulls/369
[#369]: https://github.com/informalsystems/ibc-rs/pull/369
[#371]: https://github.com/informalsystems/ibc-rs/issues/371
[#372]: https://github.com/informalsystems/ibc-rs/issues/372
[#373]: https://github.com/informalsystems/ibc-rs/issues/373
[#374]: https://github.com/informalsystems/ibc-rs/issues/374
[#376]: https://github.com/informalsystems/ibc-rs/issues/376
[#377]: https://github.com/informalsystems/ibc-rs/issues/377
[#378]: https://github.com/informalsystems/ibc-rs/issues/378
[#386]: https://github.com/informalsystems/ibc-rs/issues/386
[#389]: https://github.com/informalsystems/ibc-rs/issues/389
[#402]: https://github.com/informalsystems/ibc-rs/issues/402
[#403]: https://github.com/informalsystems/ibc-rs/issues/403
[#404]: https://github.com/informalsystems/ibc-rs/issues/404
[#419]: https://github.com/informalsystems/ibc-rs/issues/419
[#415]: https://github.com/informalsystems/ibc-rs/issues/415
[#428]: https://github.com/informalsystems/ibc-rs/issues/428
[proto-compiler]: https://github.com/informalsystems/ibc-rs/tree/master/proto-compiler

### IMPROVEMENTS

- [relayer-cli]
- Split tasks spawned by CLI commands into their own modules ([#331])
- V0 command implementation ([#346])
- [modules]
- Homogenize ConnectionReader trait so that all functions return owned objects ([#347])
- Align with tendermint-rs in the domain type definition of `block::Id` ([#338])

[#274]: https://github.com/informalsystems/ibc-rs/issues/274
[#277]: https://github.com/informalsystems/ibc-rs/issues/277
[#331]: https://github.com/informalsystems/ibc-rs/pulls/331
[#332]: https://github.com/informalsystems/ibc-rs/issues/332
[#335]: https://github.com/informalsystems/ibc-rs/pulls/335
[#336]: https://github.com/informalsystems/ibc-rs/issues/336
[#338]: https://github.com/informalsystems/ibc-rs/issues/338
[#347]: https://github.com/informalsystems/ibc-rs/issues/347
[#346]: https://github.com/informalsystems/ibc-rs/issues/346
[#348]: https://github.com/informalsystems/ibc-rs/pulls/348
[changelog]: https://github.com/informalsystems/ibc-rs/tree/master/CHANGELOG.md
[proto-compiler]: https://github.com/informalsystems/ibc-rs/tree/master/proto-compiler

## v0.0.4
*October 19, 2020*
Expand Down
3 changes: 2 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,5 @@ exclude = [
tendermint = { git = "https://github.com/informalsystems/tendermint-rs", branch = "romac/skip-verif" }
tendermint-rpc = { git = "https://github.com/informalsystems/tendermint-rs", branch = "romac/skip-verif" }
tendermint-proto = { git = "https://github.com/informalsystems/tendermint-rs", branch = "romac/skip-verif" }
tendermint-light-client = { git = "https://github.com/informalsystems/tendermint-rs", branch = "romac/skip-verif" }
tendermint-light-client = { git = "https://github.com/informalsystems/tendermint-rs", branch = "romac/skip-verif" }
tendermint-testgen = { git = "https://github.com/informalsystems/tendermint-rs", branch = "romac/skip-verif" }
9 changes: 5 additions & 4 deletions docs/spec/fungible-token-transfer/Chain.tla
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,15 @@ Heights == 1..MaxHeight \* set of possible heights of the chains in the system
\* Create a packet: Abstract away from timestamp.
\* Assume timeoutHeight is MaxHeight + 1
CreatePacket(packetData) ==
LET channelEnd == chainStore.channelEnd IN
AsPacket([
sequence |-> appPacketSeq,
timeoutHeight |-> MaxHeight + 1,
data |-> packetData,
srcChannelID |-> GetChannelID(ChainID),
srcPortID |-> GetPortID(ChainID),
dstChannelID |-> GetCounterpartyChannelID(ChainID),
dstPortID |-> GetCounterpartyPortID(ChainID)
srcPortID |-> channelEnd.portID,
srcChannelID |-> channelEnd.channelID,
dstPortID |-> channelEnd.counterpartyPortID,
dstChannelID |-> channelEnd.counterpartyChannelID
])


Expand Down
6 changes: 3 additions & 3 deletions docs/spec/fungible-token-transfer/IBCTokenTransfer.tla
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ ChainB == INSTANCE Chain
appPacketSeq <- appPacketSeqChainB

(***************************************************************************
ICS02Environment operators
Environment operators
***************************************************************************)

\* get chain store by ID
Expand Down Expand Up @@ -86,7 +86,7 @@ PacketDatagram(srcChainID, dstChainID, packetLogEntry) ==
LET dstChannelID == GetChannelID(dstChainID) IN \* "chanBtoA" (if dstChainID = "chainB")

LET srcPortID == GetPortID(srcChainID) IN \* "portA" (if srcChainID = "chainA")
LET dstPortID == GetPortID(dstChainID) IN \* "portb" (if dstChainID = "chainB")
LET dstPortID == GetPortID(dstChainID) IN \* "portB" (if dstChainID = "chainB")

LET srcHeight == GetLatestHeight(GetChainByID(srcChainID)) IN

Expand Down Expand Up @@ -120,7 +120,7 @@ PacketDatagram(srcChainID, dstChainID, packetLogEntry) ==
ELSE NullDatagram

(***************************************************************************
ICS02Environment actions
Environment actions
***************************************************************************)
\* update the client height of some chain
UpdateClients ==
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -191,9 +191,10 @@ ChannelEnds ==
[
state : ChannelStates,
order : {"UNORDERED"},
portID : PortIDs \union {nullPortID},
channelID : ChannelIDs \union {nullChannelID},
counterpartyChannelID : ChannelIDs \union {nullChannelID},
counterpartyPortID : PortIDs \union {nullPortID},
counterpartyChannelID : ChannelIDs \union {nullChannelID},
version : {"ics20-1"}
]

Expand Down Expand Up @@ -246,10 +247,10 @@ Packets(maxHeight, maxPacketSeq, maxBalance, Denominations) ==
sequence : 1..maxPacketSeq,
timeoutHeight : 1..maxHeight,
data : FungibleTokenPacketData(maxBalance, Denominations),
srcChannelID : ChannelIDs,
srcPortID : PortIDs,
dstChannelID : ChannelIDs,
dstPortID : PortIDs
srcChannelID : ChannelIDs,
dstPortID : PortIDs,
dstChannelID : ChannelIDs
] <: {PacketType}


Expand Down Expand Up @@ -378,9 +379,10 @@ GetLatestHeight(chain) ==
InitUnorderedChannelEnd(ChainID) ==
[state |-> "OPEN",
order |-> "UNORDERED",
portID |-> GetPortID(ChainID),
channelID |-> GetChannelID(ChainID),
counterpartyChannelID |-> GetCounterpartyChannelID(ChainID),
counterpartyPortID |-> GetCounterpartyPortID(ChainID),
counterpartyChannelID |-> GetCounterpartyChannelID(ChainID),
version |-> "ics20-1"]


Expand Down
Loading

0 comments on commit 878550e

Please sign in to comment.