While package dappfiles contain settings relevant to their respective packages,
dapplerc files contain settings relevant to the global development environment.
Dapple creates a basic dapplerc file upon its first run. The file is saved under
the name .dapplerc
in the user's home directory, at which point the user may
choose to customize it beyond what Dapple's dapplerc wizard allows for.
Understanding the format of dapplerc files is of course a necessary
prerequisite.
Note that the dapplerc format is still under development, so the information in this document may occasionally fall out of step with reality. When in doubt, consult the source code. The automated tests are the authority on intended behavior.
Each dapplerc file includes at the top level an environments
mapping of
environment names to IPFS and Ethereum client settings. Each environment name
either maps to another environment name, making it an alias for that
environment, or to a mapping with the keys ethereum
and ipfs
.
For example:
environments:
default:
ipfs:
host: 'localhost'
port: '4001'
ethereum:
host: 'localhost'
port: '8545'
The default
environment is special. All other environments are derived from
it. If a setting is left undefined in an environment, the value of default
is
taken. In other words...
environments:
default:
ipfs:
host: 'localhost'
port: '4001'
ethereum:
host: 'localhost'
port: '8545'
account: '0xdeadbeef'
internal:
ethereum: 'internal'
...is equivalent to...
environments:
default:
ipfs:
host: 'localhost'
port: '4001'
ethereum:
host: 'localhost'
port: '8545'
internal:
ethereum: 'internal'
ipfs:
host: 'localhost'
port: '4001'
The 'internal'
value for the ethereum
key is also special. This indicates to
Dapple that it ought to spin up a fresh internal EVM chain and use that when
this environment is specified.
The host
and port
settings in both ipfs
and ethereum
tell Dapple how to
connect to IPFS and Ethereum via JSON-RPC. The account
setting in ethereum
indicates which account to use when deploying and publishing packages via
dapple deploy
and dapple run
.