Skip to content

node-a-team/cosmos_ibc_demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cosmos IBC_Demo Test

Gaiad Command

Gaiad start

  • alice chain
$ gaiad --home=alice/a0/gaiad start
  • router chain
$ gaiad --home=router/r0/gaiad start
  • bob chain
$ gaiad --home=bob/b0/gaiad start
  • carol chain
$ gaiad --home=carol/c0/gaiad start

IBC Command

Client

  • Creation
$ echo 12345678 | gaiacli --home alice/a0/gaiacli tx ibc client create client_a-r_for-b $(gaiacli --home router/r0/gaiacli q ibc client consensus-state) --from=a0 -y -o text && sleep 1 && \
echo 12345678 | gaiacli --home alice/a0/gaiacli tx ibc client create client_a-r_for-c $(gaiacli --home router/r0/gaiacli q ibc client consensus-state) --from=a0 -y -o text && sleep 1 && \
echo 12345678 | gaiacli --home router/r0/gaiacli tx ibc client create client_r-a_for-b $(gaiacli --home alice/a0/gaiacli q ibc client consensus-state) --from=r0 -y -o text && sleep 1 && \
echo 12345678 | gaiacli --home router/r0/gaiacli tx ibc client create client_r-a_for-c $(gaiacli --home alice/a0/gaiacli q ibc client consensus-state) --from=r0 -y -o text && sleep 1 && \
echo 12345678 | gaiacli --home router/r0/gaiacli tx ibc client create client_r-b_for-a $(gaiacli --home bob/b0/gaiacli q ibc client consensus-state) --from=r0 -y -o text && sleep 1 && \
echo 12345678 | gaiacli --home router/r0/gaiacli tx ibc client create client_r-c_for-a $(gaiacli --home carol/c0/gaiacli q ibc client consensus-state) --from=r0 -y -o text && sleep 1 && \
echo 12345678 | gaiacli --home bob/b0/gaiacli tx ibc client create client_b-r_for-a $(gaiacli --home router/r0/gaiacli q ibc client consensus-state) --from=b0 -y -o text && sleep 1 && \
echo 12345678 | gaiacli --home carol/c0/gaiacli tx ibc client create client_c-r_for-a $(gaiacli --home router/r0/gaiacli q ibc client consensus-state) --from=c0 -y -o text
  • Confirm
$ gaiacli --home alice/a0/gaiacli q ibc client client client_a-r_for-b --indent && \
gaiacli --home alice/a0/gaiacli q ibc client client client_a-r_for-c --indent && \
gaiacli --home router/r0/gaiacli q ibc client client client_r-a_for-b --indent && \
gaiacli --home router/r0/gaiacli q ibc client client client_r-a_for-c --indent && \
gaiacli --home router/r0/gaiacli q ibc client client client_r-b_for-a --indent && \
gaiacli --home router/r0/gaiacli q ibc client client client_r-c_for-a --indent && \
gaiacli --home bob/b0/gaiacli q ibc client client client_b-r_for-a --indent && \
gaiacli --home carol/c0/gaiacli q ibc client client client_c-r_for-a --indent

Connection

  • Creation
$ gaiacli --home=alice/a0/gaiacli tx ibc connection handshake \
conn_a-r_for-b client_a-r_for-b $(gaiacli --home router/r0/gaiacli q ibc client path) \
conn_r-a_for-b client_r-a_for-b $(gaiacli --home alice/a0/gaiacli q ibc client path) \
  --chain-id2=router --from1=a0 --from2=r0 --node1=tcp://localhost:16657 --node2=tcp://localhost:26657 && sleep 1 && \
gaiacli --home=alice/a0/gaiacli tx ibc connection handshake \
conn_a-r_for-c client_a-r_for-c $(gaiacli --home router/r0/gaiacli q ibc client path) \
conn_r-a_for-c client_r-a_for-c $(gaiacli --home alice/a0/gaiacli q ibc client path) \
  --chain-id2=router --from1=a0 --from2=r0 --node1=tcp://localhost:16657 --node2=tcp://localhost:26657 && sleep 1 && \
gaiacli --home=router/r0/gaiacli tx ibc connection handshake \
conn_r-b_for-a client_r-b_for-a $(gaiacli --home bob/b0/gaiacli q ibc client path) \
conn_b-r_for-a client_b-r_for-a $(gaiacli --home router/r0/gaiacli q ibc client path) \
  --chain-id2=bob --from1=r0 --from2=b0 --node1=tcp://localhost:26657 --node2=tcp://localhost:36657 && sleep 1 && \
gaiacli --home=router/r0/gaiacli tx ibc connection handshake \
conn_r-c_for-a client_r-c_for-a $(gaiacli --home carol/c0/gaiacli q ibc client path) \
conn_c-r_for-a client_c-r_for-a $(gaiacli --home router/r0/gaiacli q ibc client path) \
  --chain-id2=carol --from1=r0 --from2=c0 --node1=tcp://localhost:26657 --node2=tcp://localhost:46657 
  • Confirm
$ gaiacli --home alice/a0/gaiacli q ibc connection connection  conn_a-r_for-b --indent --trust-node && \
gaiacli --home alice/a0/gaiacli q ibc connection connection  conn_a-r_for-c --indent --trust-node && \
gaiacli --home router/r0/gaiacli q ibc connection connection conn_r-a_for-b --indent --trust-node && \
gaiacli --home router/r0/gaiacli q ibc connection connection conn_r-a_for-c --indent --trust-node && \
gaiacli --home router/r0/gaiacli q ibc connection connection conn_r-b_for-a --indent --trust-node && \
gaiacli --home router/r0/gaiacli q ibc connection connection conn_r-c_for-a --indent --trust-node && \
gaiacli --home bob/b0/gaiacli q ibc connection connection conn_b-r_for-a --indent --trust-node && \
gaiacli --home carol/c0/gaiacli q ibc connection connection conn_c-r_for-a --indent --trust-node

Channel

  • Creation
$ gaiacli --home alice/a0/gaiacli tx ibc channel handshake \
  ibcmocksend chan_a-r_for-b conn_a-r_for-b \
  ibcmockrecv chan_r-a_for-b conn_r-a_for-b \
  --node1=tcp://localhost:16657 --node2=tcp://localhost:26657 --chain-id2=router --from1=a0 --from2=r0 && sleep 1 && \
gaiacli --home alice/a0/gaiacli tx ibc channel handshake \
  ibcmocksend chan_a-r_for-c conn_a-r_for-c \
  ibcmockrecv chan_r-a_for-c conn_r-a_for-c \
  --node1=tcp://localhost:16657 --node2=tcp://localhost:26657 --chain-id2=router --from1=a0 --from2=r0 && sleep 1 && \
gaiacli --home router/r0/gaiacli \
  tx ibc channel handshake \
  ibcmocksend chan_r-b_for-a conn_r-b_for-a \
  ibcmockrecv chan_b-r_for-a conn_b-r_for-a \
  --node1=tcp://localhost:26657 --node2=tcp://localhost:36657 --chain-id2=bob --from1=r0 --from2=b0 && sleep 1 && \
gaiacli --home router/r0/gaiacli \
  tx ibc channel handshake \
  ibcmocksend chan_r-c_for-a conn_r-c_for-a \
  ibcmockrecv chan_c-r_for-a conn_c-r_for-a \
  --node1=tcp://localhost:26657 --node2=tcp://localhost:46657 --chain-id2=carol --from1=r0 --from2=c0 
  • Confirm
$ gaiacli --home alice/a0/gaiacli q ibc channel channel ibcmocksend chan_a-r_for-b --indent --trust-node && \
gaiacli --home alice/a0/gaiacli q ibc channel channel ibcmocksend chan_a-r_for-c --indent --trust-node && \
gaiacli --home router/r0/gaiacli q ibc channel channel ibcmockrecv chan_r-a_for-b --indent --trust-node && \
gaiacli --home router/r0/gaiacli q ibc channel channel ibcmockrecv chan_r-a_for-c --indent --trust-node && \
gaiacli --home router/r0/gaiacli q ibc channel channel ibcmocksend chan_r-b_for-a --indent --trust-node && \
gaiacli --home router/r0/gaiacli q ibc channel channel ibcmocksend chan_r-c_for-a --indent --trust-node && \
gaiacli --home bob/b0/gaiacli q ibc channel channel ibcmockrecv chan_b-r_for-a --indent --trust-node && \
gaiacli --home carol/c0/gaiacli q ibc channel channel ibcmockrecv chan_c-r_for-a --indent --trust-node

Send

  • alice -> router(for bob)
$ echo 12345678 | gaiacli --home alice/a0/gaiacli tx ibcmocksend sequence chan_a-r_for-b $(gaiacli --home alice/a0/gaiacli q ibcmocksend next chan_a-r_for-b --trust-node) --from a0 -o text -y
  • alice -> router(for carol)
$echo 12345678 | gaiacli --home alice/a0/gaiacli tx ibcmocksend sequence chan_a-r_for-c $(gaiacli --home alice/a0/gaiacli q ibcmocksend next chan_a-r_for-c --trust-node) --from a0 -o text -y
  • router -> bob
$ echo 12345678 | gaiacli --home router/r0/gaiacli tx ibcmocksend sequence chan_r-b_for-a $(gaiacli --home router/r0/gaiacli q ibcmocksend next chan_r-b_for-a --trust-node) --from r0 -o text -y
  • router -> carol
$ echo 12345678 | gaiacli --home router/r0/gaiacli tx ibcmocksend sequence chan_r-b_for-c $(gaiacli --home router/r0/gaiacli q ibcmocksend next chan_r-b_for-c --trust-node) --from r0 -o text -y

Receive

  • router(from alice, for bob)
$ echo 12345678 | gaiacli --home router/r0/gaiacli tx ibc channel pull ibcmockrecv chan_r-a_for-b \
  --node1=tcp://localhost:26657 --node2=tcp://localhost:16657 --chain-id2=alice --from=r0
  • router(from alice, for carol)
$ echo 12345678 | gaiacli --home router/r0/gaiacli tx ibc channel pull ibcmockrecv chan_r-a_for-c \
  --node1=tcp://localhost:26657 --node2=tcp://localhost:16657 --chain-id2=alice --from=r0
  • bob(from router)
$ echo 12345678 | gaiacli --home bob/b0/gaiacli tx ibc channel pull ibcmockrecv chan_b-r_for-a \
  --node1=tcp://localhost:36657 --node2=tcp://localhost:26657 --chain-id2=router --from=b0
  • carol(from router)
$ echo 12345678 | gaiacli --home carol/c0/gaiacli tx ibc channel pull ibcmockrecv chan_c-r_for-a \
  --node1=tcp://localhost:46657 --node2=tcp://localhost:26657 --chain-id2=router --from=c0

Etc Scripts

  • alice's rest-server
$ nohup gaiacli --home alice/a0/gaiacli rest-server --laddr=tcp://localhost:1317 > /dev/null &
  • Sequence monitor
$ printf "\n##########################################################################\n" && \
printf "\t\tSender\trouterr_Receive\trouterr_Send\tReceiver\n" && \
printf "alice -> bob:\t%d\t%d\t\t%d\t\t%d\n" $(gaiacli --home alice/a0/gaiacli q ibcmocksend sequence chan_a-r_for-b --trust-node)  $(gaiacli --home router/r0/gaiacli q ibcmockrecv sequence chan_r-a_for-b --trust-node) $(gaiacli --home router/r0/gaiacli q ibcmocksend sequence chan_r-b_for-a --trust-node) $(gaiacli --home bob/b0/gaiacli q ibcmockrecv sequence chan_b-r_for-a --trust-node) && \
printf "alice -> carol:\t%d\t%d\t\t%d\t\t%d\n" $(gaiacli --home alice/a0/gaiacli q ibcmocksend sequence chan_a-r_for-c --trust-node)  $(gaiacli --home router/r0/gaiacli q ibcmockrecv sequence chan_r-a_for-c --trust-node) $(gaiacli --home router/r0/gaiacli q ibcmocksend sequence chan_r-c_for-a --trust-node) $(gaiacli --home carol/c0/gaiacli q ibcmockrecv sequence chan_c-r_for-a --trust-node) && \
printf "##########################################################################\n"; \
sleep 3; done

About

Cosmos IBC_Demo Test

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published