Restructure wallet docs to prep for app wallet content (#9088)

automerge
This commit is contained in:
Dan Albert
2020-03-26 13:42:05 -06:00
committed by GitHub
parent 30bed18b77
commit 284920433f
10 changed files with 29 additions and 20 deletions

View File

@@ -1,65 +0,0 @@
# Choose a Wallet
Keypairs are stored in *wallets* and wallets come in many forms. A wallet might
be a directory in your computer's file system, a piece of paper, or a
specialized device called a *hardware wallet*. Some wallets are easier to use
than others. Some are more secure than others. In this section, we will compare
and contrast different types of wallets and help you choose the wallet that
best fits your needs.
## File System Wallet
A *file system wallet*, aka an FS wallet, is a directory in your computer's
file system. Each file in the directory holds a keypair.
### FS Wallet Security
An FS wallet is the most convenient and least secure form of wallet. It is
convenient because the keypair is stored in a simple file. You can generate as
many keys as you would like and trivially back them up by copying the files. It
is insecure because the keypair files are **unencrypted**. If you are the only
user of your computer and you are confident it is free of malware, an FS wallet
is a fine solution for small amounts of cryptocurrency. If, however, your
computer contains malware and is connected to the Internet, that malware may
upload your keys and use them to take your tokens. Likewise, because the
keypairs are stored on your computer as files, a skilled hacker with physical
access to your computer may be able to access it. Using an encrypted hard
drive, such as FileVault on MacOS, minimizes that risk.
## Paper Wallet
A *paper wallet* is a collection of *seed phrases* written on paper. A seed
phrase is some number of words (typically 12 or 24) that can be used to
regenerate a keypair on demand.
### Paper Wallet Security
In terms of convenience versus security, a paper wallet sits at the opposite
side of the spectrum from an FS wallet. It is terribly inconvenient to use, but
offers excellent security. That high security is further amplified when paper
wallets are used in conjunction with
[offline signing](../offline-signing/index.md). Custody services such as
[Coinbase Custody](https://custody.coinbase.com/) use this combination. Paper wallets
and custody services are an excellent way to secure a large number of tokens
for a long period of time.
## Hardware Wallet
A hardware wallet is a small handheld device that stores keypairs and provides
some interface for signing transactions.
### Hardware Wallet Security
A hardware wallet, such as the
[Ledger hardware wallet](https://www.ledger.com/), offers a great blend of
security and convenience for cryptocurrencies. It effectively automates the
process of offline signing while retaining nearly all the convenience of an FS
wallet.
## Which Wallet is Best?
Different people will have different needs, but if you are still unsure what
is best for you after reading the comparisons above, go with a
[Ledger Nano S](https://shop.ledger.com/products/ledger-nano-s). The
[Nano S is well-integrated into Solana's tool suite](../remote-wallet/ledger.md)
and offers an outstanding blend of security and convenience.

View File

@@ -4,8 +4,8 @@ In this section, we will generate a keypair, query it for its public key,
and verify you control its private key. Before you begin, you will need
to:
* [Install the Solana Tool Suite](../install-solana.md)
* [Choose a wallet](choose-a-wallet.md)
* [Install the Solana Tool Suite](install-solana-cli-tools.md)
* [Choose a wallet](cli-wallets.md)
## Generate an FS Wallet Keypair

View File

@@ -0,0 +1,131 @@
# Install the Solana Tool Suite
Install the Solana release
[LATEST_SOLANA_RELEASE_VERSION](https://github.com/solana-labs/solana/releases/tag/LATEST_SOLANA_RELEASE_VERSION) on your
machine by running:
```bash
curl -sSf https://raw.githubusercontent.com/solana-labs/solana/LATEST_SOLANA_RELEASE_VERSION/install/solana-install-init.sh | sh -s - LATEST_SOLANA_RELEASE_VERSION
```
If you are connecting to a different testnet, you can replace `LATEST_SOLANA_RELEASE_VERSION` with the
release tag matching the software version of your desired testnet, or replace it
with the named channel `stable`, `beta`, or `edge`.
The following output indicates a successful update:
```text
looking for latest release
downloading LATEST_SOLANA_RELEASE_VERSION installer
Configuration: /home/solana/.config/solana/install/config.yml
Active release directory: /home/solana/.local/share/solana/install/active_release
* Release version: LATEST_SOLANA_RELEASE_VERSION
* Release URL: https://github.com/solana-labs/solana/releases/download/LATEST_SOLANA_RELEASE_VERSION/solana-release-x86_64-unknown-linux-gnu.tar.bz2
Update successful
```
After a successful install, `solana-install update` may be used to easily update
the cluster software to a newer version at any time.
## Download Prebuilt Binaries
If you would rather not use `solana-install` to manage the install, you can
manually download and install the binaries.
### Linux
Download the binaries by navigating to
[https://github.com/solana-labs/solana/releases/latest](https://github.com/solana-labs/solana/releases/latest),
download **solana-release-x86\_64-unknown-linux-gnu.tar.bz2**, then extract the
archive:
```bash
tar jxf solana-release-x86_64-unknown-linux-gnu.tar.bz2
cd solana-release/
export PATH=$PWD/bin:$PATH
```
### macOS
Download the binaries by navigating to
[https://github.com/solana-labs/solana/releases/latest](https://github.com/solana-labs/solana/releases/latest),
download **solana-release-x86\_64-apple-darwin.tar.bz2**, then extract the
archive:
```bash
tar jxf solana-release-x86_64-apple-darwin.tar.bz2
cd solana-release/
export PATH=$PWD/bin:$PATH
```
## Build From Source
If you are unable to use the prebuilt binaries or prefer to build it yourself
from source, navigate to
[https://github.com/solana-labs/solana/releases/latest](https://github.com/solana-labs/solana/releases/latest),
and download the **Source Code** archive. Extract the code and build the
binaries with:
```bash
./scripts/cargo-install-all.sh .
export PATH=$PWD/bin:$PATH
```
You can then run the following command to obtain the same result as with
prebuilt binaries:
```bash
solana-install init
```
# Choosing a Cluster
Solana maintains several clusters, each featuring a Solana-owned validator
that serves as an entrypoint to the cluster.
Current cluster entrypoints:
* Devnet: devnet.solana.com
* Tour de SOL: tds.solana.com
Application developers should target Devnet. Key differences
between Devnet and what will be Mainnet:
* Devnet tokens are not real
* Devnet includes a token faucet for application testing
* Devnet may be subject to ledger resets
* Devnet typically runs a newer software version than mainnet
* Devnet may be maintained by different validators than mainnet
## Configure the Command-line
You can check what cluster the Solana CLI is currently targeting by
running the following command:
```bash
solana config get
```
Use the `solana config set` command to target a different cluster.
For example, for Devnet, use:
```bash
solana config set --url http://devnet.solana.com
```
## Ensure Versions Match
Though not strictly necessary, the CLI will generally work best when its version
matches the software version running on the cluster. To get the CLI version, run:
```bash
solana --version
```
To get the cluster version, run:
```bash
solana cluster-version
```
Ensure the CLI version is greater than or equal to the cluster version.

View File

@@ -6,7 +6,7 @@ To receive tokens, you will need an address for others to send tokens to. In
Solana, an address is the public key of a keypair. There are a variety
of techniques for generating keypairs. The method you choose will depend on how
you choose to store keypairs. Keypairs are stored in wallets. Before receiving
tokens, you will need to [choose a wallet](choose-a-wallet.md) and
tokens, you will need to [choose a wallet](cli-wallets.md) and
[generate keys](generate-keys.md). Once completed, you should have a public key
for each keypair you generated. The public key is a long string of base58
characters. Its length varies from 32 to 44 characters.