What is Ganache
Ganache is a personal blockchain for rapid Ethereum development
It can be used across an entire development cycle, enabling you to develop,
deploy, and test dApps
All in a safe and deterministic environment
Ganache has two flavors:
UI
CLI
The Ganache UI is a desktop application supporting Ethereum and Filecoin
technologies
The command line tool is more robust
Getting Started - CLI
Ganache can be used from the command line, programmatically with [Link] or in
the browser
To start you need [Link] and NPM installed
To install ganache you can use npm -g install ganache
Once installed you can use ganache to start
Alternatively ganache can be used with an NPM project via npm install ganache --
save
You can add ganache to your [Link] with:
"scripts": {
"ganache": ganache --[Link] myCustomSeed"
Then start with npm run ganache
Programmatic use
Ganache can be used programmatically from [Link]
Once installed to the project ganache can be used as:
An EIP-1193 provider only
An EIP-1193 provider and JSON webserver
Web3 provider
Ethers provider
As an EIP-1193 provider only
As an EIP-1193 and JSON-RPC web server
Startup options
Startup options are grouped in the
Chain
Database
Fork
Logging
Miner
Wallet
Server
Name spaces should be included at startup
Detached Instances
Ganache can be stated as a background instance from the command line with a -d
flag
This starts ganache as a background process
It will return to your normal console once ganache has started and can receive
requests
It will return a name to interact with the instance
Instances can be interacted with via ganache instance
To stop an instance would be ganache instance stop [name]
You can run ganache instances list to see a list of current running processes
Here we can start an instance with a block mining time of 10 seconds
List out the instances
Stop the created instance
Ganache Provider Events
In addition to EIP-1193's message and a legacy data even, ganache emits 4 other
events:
ganache:vm:tx:before
ganache:vm:tx:step
ganache:vm:tx:after
ganache:vm:tx:[Link]
These events can be used to observe the lifecycle of a transaction executed via
*sendTransaction , eth_call , debug_traceTransaction , or debug_storageRangeAt
Quickstart-GUI
Alternatively ganache can be used through a GUI
It can be downloaded to you computer from [Link]
Once launched you will see the home landing screen
On this screen you can choose to load an existing workspace, create a new one, or
quickstart a one-click blockchain with default options
The quick start has multiple different options, we'll care about ethereum