Highlights
New Features
Miscellaneous
Changelog
Known Issues
Future Plans
It's been about a month and a half since our last release, and we've been busy! This release has a couple of minor improvements and a big feature, but we've got even more exciting things coming down the pipe, like stable support for the merge hardfork, genesis.json support, "flavor" plugins, "interactive" docs, and a Ganache UI update! We're ending the year strong and we'll be starting it even stronger <insert motivational poster here>.
Thank you to our PR contributors @tenthirtyone, @jeffsmale90, @emilyJLin95, and @MicaiahReid. We'd also like to thank users that contributed to issues closed by the release @fvictorio, @kiview, @leofisG, @mabo-lh, @zhcppy, @ilyar, @lourenc, @mfornet, @kylezs, @TheArhaam, @anthanh, @GradeyCullins, @hacken-audits, @amandesai01, @rudewalt, and @parthlaw.
We use your feedback to plan our roadmap, so if you have some time, we encourage you to browse our issues to find anything you'd like implemented/fixed sooner. Give them a 👍 and we'll use this community feedback to help prioritize what we work on! Or better yet, open a new issue or open a PR to fix an existing issue.
We've changed 17 files across 5 merged pull requests, tallying 1237 additions and 153 deletions, since our last release.
The release delivers a long-awaited and highly-requested feature: detach mode (starring Sandra Bullock, directed by Jeff Smale)!
Detach mode affords users the ability to start Ganache in the background with a simple flag: --detach
. Check out the details and example usage below.
back to top
feat: add detach
mode to the CLI (#3568)
A common, and rather annoying pattern projects have needed to implement is:
ganache & sleep 5
# interact with localhost:8545 somehow
This set of commands starts Ganache in the background (using &
) and then waits a while (how much changes a lot from machine to machine) until it's ready.
Another inefficient workflow that Ganache has necessitated is maintaining a dedicated terminal just for running Ganache. This becomes extra annoying when you want to have different instances and flavors of Ganache running at the same time.
Ganache can do better...
Enter: Detach mode.
You can now start Ganache with the --detach
flag, which will cause it return to the console as soon as it is ready to receive requests, outputting a nickname for the instance that can later be used to stop
the instance.
The command ganache instances list
will show you all of the instances of Ganache running in Detach mode, and you can stop them with ganache instances stop <name>
.
$ ganache instances list
┌───────┬─────────────────────────┬──────────┬─────────┬────────────────┬────────┐
│ PID │ Name │ Flavor │ Version │ Host │ Uptime │
├───────┼─────────────────────────┼──────────┼─────────┼────────────────┼────────┤
│ 12182 │ salted_caramel_ganache │ ethereum │ 7.6.0 │ 127.0.0.1:8545 │ 4s │
├───────┼─────────────────────────┼──────────┼─────────┼────────────────┼────────┤
│ 53184 │ candied_caramel_truffle │ ethereum │ 7.6.0 │ 127.0.0.1:8546 │ 2m 56s │
└───────┴─────────────────────────┴──────────┴─────────┴────────────────┴────────┘
With the following command, you can start Ganache, run your tests, and stop Ganache when you are finished:
GANACHE=$(ganache --detach) && npm run test; ganache instances stop $GANACHE
Note that we use a ;
in the above example. This will ensure ganache instances stop $GANACHE
runs even if the tests fail.
Or, if you use PowerShell, you can do:
$GANACHE=ganache --detach; npm run test; ganache instances stop $GANACHE
We see Detach mode as the foundation for a new way of interacting with Ganache, and we plan on expanding the scope and features in upcoming releases. We'd love to hear your feedback on the feature, and your ideas on how to improve it. We'll be using the detach-mode
label to track ideas and issues; have a look through the existing ones and add your voice by commenting or 👍, or open a new issue.
Fixes: #1001
back to top
- ci: update actions/workflows to use Node 16 (#3833)
- docs: document
eth_feeHistory
inRCP-METHODS.md
(#3840) - docs: update README.md to clarify usage (#3723)
- docs: add server to list of startup option namespaces in README.md (#3890)
ci: update actions/workflows to use Node 16 (#3833)
Just getting with the times by updating some GitHub Actions.
back to miscellaneous
docs: document eth_feeHistory
in RCP-METHODS.md
(#3840)
It does what it says on the label.
back to miscellaneous
docs: update README.md to clarify usage (#3723)
Clarifying how to run Ganache for usage on the CLI, as well as in programmatic usage.
back to miscellaneous
docs: add server to list of startup option namespaces in README.md (#3890)
smol change
back to miscellaneous
back to top
- #3833 ci: update actions/workflows to use Node 16 (@cds-amal)
- #3840 docs: document
eth_feeHistory
inRCP-METHODS.md
(@davidmurdoch) - #3723 docs: update README.md to clarify usage (@emilyJLin95)
- #3568 feat: add
detach
mode to the CLI (@jeffsmale90) - #3890 docs: add server to list of startup option namespaces in README.md (@tenthirtyone)
back to top
Top Priority:
- The Merge #3971
debug_storageRangeAt
fails to find storage when the slot was created earlier in the same block (#3338)- Add
eth_createAccessList
RPC method (#1056)
Coming Soon™:
- Implications failed: fork.headers -> url (#2627)
- In Geth chain-mode, logic to accept/reject transactions based on gas price/limit should match Geth (#2176)
evm_mine
andminer_start
don't respect --mode.instamine=eager (#2029)evm_setAccount*
is race-conditiony (#1646)@ganache/filecoin@alpha
doesn't work withganache@alpha
(#1150)- Launching ganache with fork is throwing revert errors when communicating with 3rd party contracts (#956)
- Build a real pending block! (#772)
- VM Exception when interfacing with Kyber contract (#606)
- After calling
evm_mine
,eth_getLogs
returns same logs for all blocks (#533) - personal_unlockAccount works with any password (#165)
- --db Option Requires Same Mnemonic and Network ID (#1030)
back to top
Top Priority:
- Accept a genesis.json file (#1042)
Coming Soon™:
- Switch to esbuild to make build times faster/reasonable (#1555)
- Allow to sync forked chain to the latest block (#643)
- Implement a streaming trace capability (#381)
- Improve log performance when forking (#145)
- Log contract events (#45)
back to top
Open new issues to influence what we gets implemented and prioritized.
💖 The Truffle Team