Grin: Private & Lightweight
- Mining Algorithm
- Grin Data
- Build & Install Grin CLI Wallet
- CLI Wallet Config & Usage
- Grin Mining Setup
- Grin Trading
- Frequently Asked Questions
Cuckoo Cycle Proof-of-Work
Grin’s approach to ASIC resistance is its Cuckoo Cycle Proof-of-Work. Similarly to BEAM, ASIC resistance is achieved by heavy memory use. Therefore, the time to solve a block depends on memory bandwidth rather than CPU / processor speed. Thus, energy consumption is considerably lower than most processor based Proof-of-Work algorithms.
To learn more about Grin’s Proof-of-Work, check the official documentation on GitHub.
Grin Specs And Data
Specifications and features of Grin:
- Programming language: Rust
- Algorithm: Cuckoo Cycle Proof-of-Work
- Total supply: no limit (but declining emission over time)
- Cross chain atomic swaps
- Blocktime: 60 seconds
- privacy focused blockchain using Mimblewimble
- Scalable (transaction cut-through)
How to build Grin from source
First, you will need to install the Rust programming language on your (GNU/Linux) computer. According to the Grin docs, Windows is kind of supported, but not really (mining does not work). So, let’s focus on GNU/Linux, for now.
This tutorial assumes that you have a 64bit Ubuntu 16.04 or compatible.
Step 1: install Rust
Refresh the package source list:
sudo apt update
Now, let’s fetch the Rust installer from https://rust-lang.org/. Open a Terminal (Ctrl+Alt+t) and paste the following command:
wget -O - https://static.rust-lang.org/rustup.sh | bash
After the download of rustup.sh has completed, the Rust installer opens:
Follow the instructions in the terminal window:
1) Proceed with installation (default)
- wait for the installer to finish downloading (default version, including
- adjust the PATH variable:
Step 2: Dependencies
Now, let’s install all depedencies required to build and run Grin:
sudo apt install build-essential cmake git libgit2-dev clang libncurses5-dev libncursesw5-dev zlib1g-dev pkg-config libssl-dev llvm
This might take a while to install. Once it’s done, we’re ready to run the actual Grin installation.
Step 3: Grin Wallet installation
Having all requirements on our system now, we can clone grin and run a build:
git clone https://github.com/mimblewimble/grin cd grin cargo build --release
Cargo will start downloading some libs and continue with the build process. Again, this might take a while. Finally, cargo will start the build process, showing
Building [=====================================================> ] 355/359: grin_wallet
in the terminal window. After that, the build process should finish without major warnings or issues.
target/release and inspect the results of the build process. It should look something like this:
grin file is what we wanted. To get an overview of what you can do, run one of the following commands:
grin help grin wallet help grin client help
Congratulations, you did it! You have successfully installed the wallet, therefore you’re ready to use it.
See the next tab for more details!
How to use the Grin wallet
Step 1: open wallet
As described in the previous section, we’ve compiled Grin and we
cd‘ed into its working directory. Next, we will run the
# for testnet: ./grin --floonet # for mainnet: ./grin
The wallet should open in the terminal window.
In a new terminal window, you might wanna check out the wallet’s command line options to get an idea about its capabilities:
./grin wallet help
Hit return and the command will present you a list of flags, options and subcommands you can use:
Step 2: initialize wallet
Let’s first check our account by typing:
./grin --floonet wallet account
Remember, as of the time of this writing, we’re still in testnet, so we have to set the
--floonet flag to issue commands.
Grin will now tell us that we don’t have an account, yet, and that we should first create a wallet seed file.
./grin --floonet wallet account Wallet seed file doesn't exist. Run `grin wallet init` first
This isn’t 100% accurate, yet, so let’s run:
./grin --floonet wallet init
to create a seed. It will ask you to set a password, so pick a secure one.
If everything worked well, you should get your seed. Store it in a safe place! If you lose your seed, you will lose your money!
Please enter a password for your new wallet Password: Confirm Password: 20190101 16:21:44.564 WARN grin_wallet::types - Generating wallet seed file at: /home/tommi/.grin/floo/wallet_data/wallet.seed Your recovery phrase is: (this is where your seed is) Please back-up these words in a non-digital format. Command 'init' completed successfully
This looks good! Now, let’s issue the
./grin --floonet wallet account command again to check if we have a working testnet account. Enter your password when asked and you should get an output similar to this:
Step 3: send & receive
How To Mine BEAM?
We’re constantly adding content – expect mining articles in this section, soon!
Where Can I Trade BEAM?
Check out our dedicated page for Grin Trading to get more information on how / where to trade the Grin cryptocurrency.
Frequently Asked Questions
Everything you want to know about Grin.