Skip to content

Commit

Permalink
chore: attempt to link openssl 1.1 statically (#149)
Browse files Browse the repository at this point in the history
* chore: attempt to link openssl 1.1 statically

* chore: update make install command

* chore: add build command to ci workflow

* chore: add build command to ci workflow

* chore: add build step to ci

* chore: skip make test

* chore: skip make test

* chore: typo

* chore: update version

* chore: set environment variables for static openssl in a separate step

* chore: change path for OPENSSL_DIR

* chore: typo

* chore: use separate env vars

* chore: bump openssl

* chore: update README.md

* chore: use set-env workflow command

* chore: use openssl/vendored

* chore: make openssl/vendored default in Cargo.toml

* chore: remove build instructions
  • Loading branch information
Jason authored Jan 17, 2023
1 parent 04410f1 commit 0565fe1
Show file tree
Hide file tree
Showing 4 changed files with 81 additions and 13 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## Unreleased

## [0.3.2] - 2023-01-13

### Changed
- Bump `openssl` crate to 0.10.45

## [0.3.1] - 2022-12-20

Expand Down
10 changes: 5 additions & 5 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 3 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "quill"
version = "0.3.1"
version = "0.3.2"
authors = ["DFINITY Team"]
edition = "2018"

Expand All @@ -26,7 +26,7 @@ ic-nns-governance = { git = "https://github.com/dfinity/ic", rev = "7fb55980481a
ic-types = "0.4.1"
ledger-canister = { git = "https://github.com/dfinity/ic", rev = "7fb55980481a526cda59e538114e7c3282d38f22" }
num-bigint = "0.4.3"
openssl = "0.10.38"
openssl = "0.10.45"
pem = "1.0.1"
qrcodegen = "1.8"
rand = { version = "0.8.4", features = ["getrandom"] }
Expand All @@ -47,3 +47,4 @@ tempfile = "3.3.0"

[features]
static-ssl = ["openssl/vendored"]
default = ["static-ssl"]
75 changes: 69 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,16 @@

Minimalistic ledger and governance toolkit for cold wallets.

`quill` is a toolkit for interacting with the Network Nervous System's (NNS) canisters using self-custody keys. These
keys
can be held in an air-gapped computer (a computer
that has never connected to the internet) known as a cold wallet. To support cold wallets, `quill` takes a two-phase
approach to sending query/update calls to the IC. In the first phase, `quill` is used with the various subcommands to
generate and sign messages based on user input, without needing access to the internet. In the second phase, the signed
message(s) are sent to the IC. Since this requires connection to boundary nodes via the internet, cold-wallet users will
transport the signed message(s) from the air-gapped computer (i.e. with a USB stick) to a computer connected with the
internet

## Disclaimer

YOU EXPRESSLY ACKNOWLEDGE AND AGREE THAT USE OF THIS SOFTWARE IS AT YOUR SOLE RISK.
Expand All @@ -27,19 +37,71 @@ To get the principal and the account id:

### Governance

This is how you’d stake/topup a neuron:
This is how you’d stake/top-up a neuron:

quill --pem-file <path> neuron-stake --amount 2.5 --name 1

Managing the neuron:

quill --pem-file <path> neuron-manage <neuron-id> [OPERATIONS]

All of the commands above will generate signed messages, which can be sent on the online machine using the `send` command from above.
All the commands above will generate signed messages, which can be sent on the online machine using the `send` command
from above.

## Download & Install

Use pre-built binaries from the latest [release](https://github.com/dfinity/quill/releases).

### MacOS (Intel Chip & Apple Silicon)

#### Install quill
1. Download the file named `quill-macos-x86_64`
2. Move the file to your `/usr/local/bin` directory to make it available system-wide

```shell
sudo mv quill-macos-x86_64 /usr/local/bin/quill
```

3. Make the file executable

```shell
chmod +x /usr/local/bin/quill
```

4. Run quill

```shell
quill -h
```

### Linux

1. Download the file specific to your system architecture
1. for x86 download `quill-linux-x86_64`
2. for arm32 download `quill-arm_32`

2. Move the file to your `/usr/local/bin` directory to make it available system-wide

```shell
sudo mv quill-linux-x86_64 /usr/local/bin/quill
```

3. Make the file executable

```shell
chmod +x /usr/local/bin/quill
```

4. Run quill

```shell
quill -h
```

## Download
### Windows

Use binaries from the latest [release](https://github.com/dfinity/quill/releases).
1. Download the file named `quill-windows-x86_64.exe`
2. Double-click the downloaded file to launch the executable

## Build

Expand Down Expand Up @@ -77,14 +139,15 @@ example:
## Contribution

`quill` is a very critical link in the workflow of the management of valuable assets.
`quill`'s code must stay clean, simple, readable and leave no room for ambiguities, so that it can be reviewed and audited by anyone.
`quill`'s code must stay clean, simple, readable and leave no room for ambiguities, so that it can be reviewed and
audited by anyone.
Hence, if you would like to propose a change, please adhere to the following principles:

1. Be concise and only add functional code.
2. Optimize for correctness, then for readability.
3. Avoid adding dependencies at all costs unless it's completely unreasonable to do so.
4. Every new feature (+ a test) is proposed only after it was tested on real wallets.
5. Increment the last digit of the crate version whenever the functionality scope changes.
5. Increment the last digit of the crate version whenever the functionality scope changes.

## Credit

Expand Down

0 comments on commit 0565fe1

Please sign in to comment.