Skip to content
This repository was archived by the owner on Feb 26, 2024. It is now read-only.
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 12 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Ganache is your personal blockchain for Ethereum development.

### Getting started

You can download a self-contained prebuilt Ganache binary for your platform of choice using the "Download" button on the [Ganache](https://trufflesuite.com/ganache/) website, or from this repository's [releases](https://github.com/trufflesuite/ganache/releases) page.
You can download a self-contained prebuilt Ganache binary for your platform of choice using the "Download" button on the [Ganache](https://trufflesuite.com/ganache/) website; or, from this repository's [releases](https://github.com/trufflesuite/ganache/releases) page.

Ganache is also available as a command-line tool. If you prefer working on the command-line, check out [ganache-cli](https://github.com/trufflesuite/ganache-cli).

Expand All @@ -26,15 +26,15 @@ Requirements:

To get started:

0. Clone this repo
0. Clone this repo (HTTPS: `git clone https://github.com/trufflesuite/ganache-ui.git`)
0. Run `npm install`
0. Run `npm run dev`

If using Windows, you may need [windows-build-tools](https://www.npmjs.com/package/windows-build-tools) installed first.
If you are using Windows, you may need [windows-build-tools](https://www.npmjs.com/package/windows-build-tools) installed first.

### Building for All Platforms

Each platform has an associated `npm run` configuration to help you build on each platform more easily. Because each platform has different (but similar) build processes, they require different configuration. Note that both Windows and Mac require certificates to sign the built packages; for security reasons these certs aren't uploaded to github, nor are their passwords saved in source control.
Each platform has an associated `npm run` configuration to help you build on each platform more easily. Because each platform has different (but similar) build processes, they require different configuration. Note that both Windows and Mac require certificates to sign the built packages; for security reasons, these certificates are neither uploaded to GitHub nor are their passwords saved in source control.

#### On Windows:

Expand All @@ -46,13 +46,13 @@ Before building, create the `./certs` directory with the following files:

In order to build on Windows, you must first ensure you have the [Windows 10 SDK](https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk) installed. If you have errors during the build process, ensure the package.json file's `windowsStoreConfig.windowsKit` points to your Windows 10 SDK directory. The one specified in the package.json file currently is what worked at the time this process was figured out; it may need to be updated periodically.

Because Windows requires a certificate to build the package -- and that certificate requires a password -- you'll need to run the following command instead of `npm run make`:
Because Windows requires a certificate to build the package and that certificate requires a password you'll need to run the following command instead of `npm run make`:

```
$ CERT_PASS="..." npm run build-windows
```

Replace `...` in the command above with your certificate password.
In the command above, replace `...` with your certificate password.

This will create a `.appx` file in `./out/make`.

Expand Down Expand Up @@ -91,27 +91,27 @@ Two tools were used:

`electron-icon-maker` generates assets for all platforms when using Electron's `squirrel` package, and these assets live in `./static/icons`. `svg2uwptiles` generates all assets needed for the Windows appx build, and those assets live in `./build/appx`. These locations *can* be changed in the future, but make sure to change the associated configuration pointing to these assets.

Note from the author: I found managing these assets manually -- especially the appx assets -- was a pain. If possible, try not to edit the assets themselves and use one of the generators above.
Note from the author: I found managing these assets manually especially the appx assets was a pain. If possible, try not to edit the assets themselves and use one of the generators above.

### Flavored Development

"Extras" aren't stored here in this repository fordue to file size issues, licensing issues, or both.

Non-ethereum "flavored" Ganache extras are uploaded to releases here: https://github.com/trufflesuite/ganache-flavors/releases
Non-Ethereum "flavored" Ganache extras are uploaded to releases here: https://github.com/trufflesuite/ganache-flavors/releases

When "extras" change they should be uploaded to a new release, and a corresonding Ganache release that targets the new ganache-flavors release (see `common/extras/index.js` for what you'dd need to update)

#### Corda

Corda requires 4 "extras" that get downloaded at runtime.

`braid-server.jar` is used to communicate to corda nodes via JSON RPC over HTTP. This file is built from https://gitlab.com/bluebank/braid/tree/master/braid-server. To build: run `mvn clean install` in the root of the project.
`braid-server.jar` is used to communicate to Corda nodes via JSON RPC over HTTP. This file is built from https://gitlab.com/bluebank/braid/tree/master/braid-server. To build: run `mvn clean install` in the root of the project.

`corda-tools-network-bootstrapper-4.3.jar` is used to create corda networks from configuration (`_node.conf`) files. It contains an embedded `corda.jar` and the logic required to create a network. To update or download the latest corda-tools-network-bootstrapper go to https://software.r3.com/artifactory/corda-releases/net/corda/ and download the version you want. You'll need to update the file name in `src/common/extras/index.js` if the version changes.
`corda-tools-network-bootstrapper-4.3.jar` is used to create Corda networks from configuration (`_node.conf`) files. It contains an embedded `corda.jar` and the logic required to create a network. To update or download the latest corda-tools-network-bootstrapper go to https://software.r3.com/artifactory/corda-releases/net/corda/ and download the version you want. You'll need to update the file name in `src/common/extras/index.js` if the version changes.

Corda and braid require Java's *JRE* `1.8`, aka `8`. We "release" 4 versions of JRE 1.8: Linux x64, Mac x64, Windows x32, and Windows x64. The Java releases are downloaded from https://adoptopenjdk.net/archive.html -- we use "OpenJDK 8 (LTS)" with "HotSpot". To redistribute these files you will need to unpack/unzip them, then zip them up again (make sure you are on Linux for the Linux release, as it needs its file permissions properly embedded within the zip). It is very important that you **ensure that all files are stored at the root of the zip**. You'll also want to rename the zip files in the following format: `OpenJDK8U-jre_{arch}_{os-name}_hotspot_{version}.zip`. You'll need to update the `version` in `src/common/extras/index.js` if it changes.
Corda and braid require Java's *JRE* `1.8`, aka `8`. We "release" 4 versions of JRE 1.8: Linux x64, Mac x64, Windows x32, and Windows x64. The Java releases are downloaded from https://adoptopenjdk.net/archive.html we use "OpenJDK 8 (LTS)" with "HotSpot". To redistribute these files, you will need to unpack/unzip them, then zip them up again (make sure you are on Linux for the Linux release, as it needs its file permissions properly embedded within the zip). It is very important that you **ensure that all files are stored at the root of the zip**. You'll also want to rename the zip files in the following format: `OpenJDK8U-jre_{arch}_{os-name}_hotspot_{version}.zip`. You'll need to update the `version` in `src/common/extras/index.js` if it changes.

Corda requires PostgreSQL 9.6. We "release" 4 versions of PostgreSQL 9.6: Linux x64, Mac x64, Windows x32, and Windows x64. These are downloaded from https://www.enterprisedb.com/downloads/postgres-postgresql-downloads.To redistribute these files you will need to unpack/unzip them, then zip them up again (make sure you are on Linux for the Linux release, as it needs its file permissions properly embedded within the zip). It is very important that you **ensure that all files are stored at the root of the zip**. You'll also want to rename the zip files in the following format: `postgresql-{version}-2-{os-name}-{arch}-binaries.zip`. You'll need to update the `version` in `src/common/extras/index.js` if it changes.
Corda requires PostgreSQL 9.6. We "release" 4 versions of PostgreSQL 9.6: Linux x64, Mac x64, Windows x32, and Windows x64. These are downloaded from https://www.enterprisedb.com/downloads/postgres-postgresql-downloads. To redistribute these files, you will need to unpack/unzip them, then zip them up again (make sure you are on Linux for the Linux release, as it needs its file permissions properly embedded within the zip). It is very important that you **ensure that all files are stored at the root of the zip**. You'll also want to rename the zip files in the following format: `postgresql-{version}-2-{os-name}-{arch}-binaries.zip`. You'll need to update the `version` in `src/common/extras/index.js` if it changes.


### By Truffle
Expand Down