bring back key.json. ibc guide edits

This commit is contained in:
Ethan Buchman 2017-06-21 00:32:59 -04:00
parent 105cdbac38
commit e671ce6030
2 changed files with 31 additions and 28 deletions

View File

@ -45,6 +45,7 @@ func initCmd(cmd *cobra.Command, args []string) error {
// initalize basecoin // initalize basecoin
genesisFile := cfg.GenesisFile() genesisFile := cfg.GenesisFile()
privValFile := cfg.PrivValidatorFile() privValFile := cfg.PrivValidatorFile()
keyFile := path.Join(cfg.RootDir, "key.json")
mod1, err := setupFile(genesisFile, GetGenesisJSON(userAddr), 0644) mod1, err := setupFile(genesisFile, GetGenesisJSON(userAddr), 0644)
if err != nil { if err != nil {
@ -54,8 +55,12 @@ func initCmd(cmd *cobra.Command, args []string) error {
if err != nil { if err != nil {
return err return err
} }
mod3, err := setupFile(key1File, KeyJSON, 0400)
if err != nil {
return err
}
if (mod1 + mod2) > 0 { if (mod1 + mod2 + mod3) > 0 {
logger.Info("Initialized Basecoin", "genesis", genesisFile, "priv_validator", privValFile) logger.Info("Initialized Basecoin", "genesis", genesisFile, "priv_validator", privValFile)
} else { } else {
logger.Info("Already initialized", "priv_validator", privValFile) logger.Info("Already initialized", "priv_validator", privValFile)
@ -112,3 +117,16 @@ func GetGenesisJSON(addr string) string {
} }
}`, addr) }`, addr)
} }
// TODO: remove this once not needed for relay
var KeyJSON = `{
"address": "1B1BE55F969F54064628A63B9559E7C21C925165",
"priv_key": {
"type": "ed25519",
"data": "C70D6934B4F55F1B7BC33B56B9CA8A2061384AFC19E91E44B40C4BBA182953D1619D3678599971ED29C7529DDD4DA537B97129893598A17C82E3AC9A8BA95279"
},
"pub_key": {
"type": "ed25519",
"data": "619D3678599971ED29C7529DDD4DA537B97129893598A17C82E3AC9A8BA95279"
}
}`

View File

@ -2,11 +2,8 @@
One of the most exciting elements of the Cosmos Network is the InterBlockchain One of the most exciting elements of the Cosmos Network is the InterBlockchain
Communication (IBC) protocol, which enables interoperability across different Communication (IBC) protocol, which enables interoperability across different
blockchains. The simplest example of using the IBC protocol is to send a data blockchains. We implemented IBC as a basecoin plugin, and we'll show you
packet from one blockchain to another. how to use it to send tokens across blockchains!
We implemented IBC as a basecoin plugin. and here we'll show you how to use
the Basecoin IBC-plugin to send a packet of data across blockchains!
Please note, this tutorial assumes you are familiar with [Basecoin Please note, this tutorial assumes you are familiar with [Basecoin
plugins](/docs/guide/basecoin-plugins.md), but we'll explain how IBC works. You plugins](/docs/guide/basecoin-plugins.md), but we'll explain how IBC works. You
@ -179,9 +176,8 @@ The results of a query can thus be used as proof in an `IBCPacketPostTx`.
## Relay ## Relay
While we need all these packet types internally to keep track of all the While we need all these packet types internally to keep track of all the
proofs on both chains in a secure manner, for the normal work-flow, where proofs on both chains in a secure manner, for the normal work-flow,
we just use the FIFO queue on each side for pending message to send as soon we can run a relay node that handles the cross-chain interaction.
as possible.
In this case, there are only two steps. First `basecoin relay init`, In this case, there are only two steps. First `basecoin relay init`,
which must be run once to register each chain with the other one, which must be run once to register each chain with the other one,
@ -197,11 +193,9 @@ chains to pay for all the ibc packets it will be forwarding.
Now that we have all the background knowledge, let's actually walk through the Now that we have all the background knowledge, let's actually walk through the
tutorial. tutorial.
Make sure you have installed Make sure you have installed [basecoin and basecli](/docs/guide/install.md).
[Tendermint](https://tendermint.com/intro/getting-started/download) and
[basecoin](/docs/guide/install.md).
`basecoin` is a framework for creating new cryptocurrency applications. It Basecoin is a framework for creating new cryptocurrency applications. It
comes with an `IBC` plugin enabled by default. comes with an `IBC` plugin enabled by default.
You will also want to install the [jq](https://stedolan.github.io/jq/) for You will also want to install the [jq](https://stedolan.github.io/jq/) for
@ -240,11 +234,7 @@ Prepare the genesis block and start the server:
export BCHOME=~/.ibcdemo/chain1/server export BCHOME=~/.ibcdemo/chain1/server
CHAIN_ID=test-chain-1 CHAIN_ID=test-chain-1
PREFIX=1234 PREFIX=1234
basecoin init basecoin init $(basecli keys get money | awk '{print $2}')
GENKEY=`basecli keys get money -o json --home=$HOME/.ibcdemo/chain1/client | jq .pubkey.data`
GENJSON=`cat $BCHOME/genesis.json`
echo $GENJSON | jq '.app_options.accounts[0].pub_key.data='$GENKEY | jq ".chain_id=\"$CHAIN_ID\"" > $BCHOME/genesis.json
sed -ie "s/4665/$PREFIX/" $BCHOME/config.toml sed -ie "s/4665/$PREFIX/" $BCHOME/config.toml
@ -257,8 +247,8 @@ have money, the second none:
**Client1** **Client1**
```bash ```bash
basecli init --chain-id=${CHAIN_ID} --node=tcp://localhost:${PORT} basecli init --chain-id=${CHAIN_ID} --node=tcp://localhost:${PORT}
ME=`basecli keys get money -o=json | jq .address | tr -d '"'` ME=$(basecli keys get money | awk '{print $2}')
YOU=`basecli keys get gotnone -o=json | jq .address | tr -d '"'` YOU=$(basecli keys get gotnone | awk '{print $2}')
basecli query account $ME basecli query account $ME
basecli query account $YOU basecli query account $YOU
``` ```
@ -287,12 +277,7 @@ Prepare the genesis block and start the server:
export BCHOME=~/.ibcdemo/chain2/server export BCHOME=~/.ibcdemo/chain2/server
CHAIN_ID=test-chain-2 CHAIN_ID=test-chain-2
PREFIX=2345 PREFIX=2345
basecoin init basecoin init $(basecli keys get moremoney | awk '{print $2}')
GENKEY=`basecli keys get moremoney -o json --home=$HOME/.ibcdemo/chain2/client | jq .pubkey.data`
GENJSON=`cat $BCHOME/genesis.json`
echo $GENJSON | jq '.app_options.accounts[0].pub_key.data='$GENKEY | jq ".chain_id=\"$CHAIN_ID\"" > $BCHOME/genesis.json
sed -ie "s/4665/$PREFIX/" $BCHOME/config.toml sed -ie "s/4665/$PREFIX/" $BCHOME/config.toml
@ -305,8 +290,8 @@ have money, the second none:
**Client2** **Client2**
```bash ```bash
basecli init --chain-id=${CHAIN_ID} --node=tcp://localhost:${PORT} basecli init --chain-id=${CHAIN_ID} --node=tcp://localhost:${PORT}
ME=`basecli keys get moremoney -o=json | jq .address | tr -d '"'` ME=$(basecli keys get moremoney | awk '{print $2}')
YOU=`basecli keys get broke -o=json | jq .address | tr -d '"'` YOU=$(basecli keys get broke | awk '{print $2}')
basecli query account $ME basecli query account $ME
basecli query account $YOU basecli query account $YOU
``` ```