Make sure you have Metamask installed
Get some ETH from Coinbase or another source (to pay for gas) if you don't have any already
Make sure you have some ETH in your Metamask wallet
Keep’s philosophy is rooted in the idea that people should have the freedom to make their own choices, and that markets based on incentives produce better results than tightly regulated structures where behavior is strictly prescribed.
KEEP, a work token, owes its design to these values. It offers holders the latitude to make their own decisions about which ideas to participate in and how many tokens to commit. Some will participate in every app, and others will devote themselves to one or two.
The Keep team doesn’t pick winners or losers among apps or force token holders into certain actions. Keep team confident that in the aggregate, the ecosystem they are building will create value for everyone.
The team at Keep has thought hard about how to provide true randomness, and therefore trustlessness. The random beacon is designed as an engine that can power many apps addressing many different use cases.
In tBTC, it provides the key component that ensures users’ BTC is safe when deposited — that they can trust the system without having to trust middlemen, because there are no middlemen. Keep believe in privacy and in finance as human rights, and in tBTC, they are demonstrating that they can strengthen one another.
The Keep Network requires this trusted randomness: the Beacon selects providers for each new keep, an off-chain container for private data.
But the Random Beacon’s utility goes far beyond Keep. The Beacon will be able to serve any decentralized application (dApp) that needs the same level of decentralization and reliability. Keep Network team also written a few posts on foundational components for the beacon — threshold signatures, distributed hash tables, and libp2p, to name a few.
Configuration of the VPS
Login to your server using your favorite SSH client, add firewall rules for SSH and KEEP client and enable the firewall.
sudo ufw allow 22/tcp sudo ufw allow 3919/tcp sudo ufw allow 3920/tcp yes | sudo ufw enable
After that, we have to install docker-engine on the server
sudo apt-get update sudo apt-get remove docker docker-engine docker.io sudo apt install docker.io curl -y sudo systemctl start docker sudo systemctl enable docker sudo docker --version
Create all directories and files used by KEEP
mkdir -p $HOME/keep-client/config mkdir -p $HOME/keep-client/keystore mkdir -p $HOME/keep-client/persistence # Get your server's IP export SERVER_IP=$(curl ifconfig.me) # Change with your ID from Infura. export INFURA_PROJECT_ID="PLACE_HERE_YOUR_INFURA_PROJECT_ID" # Change with your ETH Wallet. export ETH_WALLET="PLACE_HERE_YOUR_ETH_WALLET" cat <<EOF >>$HOME/keep-client/config/config.toml # Ethereum host connection info. [ethereum] URL = "wss://ropsten.infura.io/ws/v3/$INFURA_PROJECT_ID" URLRPC = "https://ropsten.infura.io/v3/$INFURA_PROJECT_ID" # Keep operator Ethereum account. [ethereum.account] Address = "$ETH_WALLET" KeyFile = "/mnt/keystore/keep_wallet.json" # Keep contract addresses configuration. [ethereum.ContractAddresses] KeepRandomBeaconOperator = "0xC8337a94a50d16191513dEF4D1e61A6886BF410f" TokenStaking = "0x234d2182B29c6a64ce3ab6940037b5C8FdAB608e" KeepRandomBeaconService = "0x6c04499B595efdc28CdbEd3f9ed2E83d7dCCC717" # Keep network configuration. [LibP2P] Peers = ["/dns4/bootstrap-1.core.keep.test.boar.network/tcp/3001/ipfs/16Uiu2HAkuTUKNh6HkfvWBEkftZbqZHPHi3Kak5ZUygAxvsdQ2UgG", "/dns4/bootstrap-2.core.keep.test.boar.network/tcp/3001/ipfs/16Uiu2HAmQirGruZBvtbLHr5SDebsYGcq6Djw7ijF3gnkqsdQs3wK", "/dns4/bootstrap-3.test.keep.network/tcp/3919/ipfs/16Uiu2HAm8KJX32kr3eYUhDuzwTucSfAfspnjnXNf9veVhB12t6Vf", "/dns4/bootstrap-2.test.keep.network/tcp/3919/ipfs/16Uiu2HAmNNuCp45z5bgB8KiTHv1vHTNAVbBgxxtTFGAndageo9Dp"] Port = 3919 # Override the node’s default addresses announced in the network AnnouncedAddresses = ["/ip4/$SERVER_IP/tcp/3920"] # Storage is encrypted [Storage] DataDir = "/mnt/persistence" EOF
After that copy content of your keep-wallet.json and paste a wallet file on the server
Run docker container and check the logs
# You can set password permanently in VPS user's profile echo "export KEEP_CLIENT_ETHEREUM_PASSWORD=your_eth_wallet_password" >> ~/.profile # OR use a temporary environment variable export KEEP_CLIENT_ETHEREUM_PASSWORD="your_eth_wallet_password" sudo docker run -dit \ --restart always \ --volume $HOME/keep-client:/mnt \ --env KEEP_ETHEREUM_PASSWORD=$KEEP_CLIENT_ETHEREUM_PASSWORD \ --env LOG_LEVEL=debug \ --name keep-client \ -p 3920:3919 \ keepnetwork/keep-client:latest --config /mnt/config/config.toml start # To access the logs sudo docker logs keep-client -f # To exit the logs CTRL+C or COMMAND+C