Story is making the legal system for creative Intellectual Property (IP) more efficient by turning IP "programmable" on the blockchain. To do this, we have created Story Network: a purpose-built layer 1 blockchain where people or programs alike can license, remix, and monetize IP according to transparent terms set by creators themselves.
RPC: https://story-test-rpc.cryptomolot.com
Websocket: wss://story-test-rpc.cryptomolot.com/websocket
API: https://story-rest.cryptomolot.com
JSON-RPC: https://story-evm.cryptomolot.com
address book: https://snapshots.cryptomolot.com/addrbook.json
genesis file: https://snapshots.cryptomolot.com/genesis.json
Resources
Website
https://www.storyprotocol.xyz/
Hardware requirements
Installation 💾
Update repositories
apt update && apt upgrade -y
Install dependencies
sudo apt install curl git make jq build-essential gcc unzip wget lz4 aria2 -y
Get binaries
# Get Story-geth
cd $HOME
wget https://github.com/piplabs/story-geth/releases/download/v0.11.0/geth-linux-amd64
[ ! -d "$HOME/go/bin" ] && mkdir -p $HOME/go/bin
if ! grep -q "$HOME/go/bin" $HOME/.bash_profile; then
echo "export PATH=$PATH:/usr/local/go/bin:~/go/bin" >> ~/.bash_profile
fi
chmod +x geth-linux-amd64
mv $HOME/geth-linux-amd64 $HOME/go/bin/story-geth
source $HOME/.bash_profile
story-geth version
# Get Story
cd $HOME
wget https://github.com/piplabs/story/releases/download/v0.13.0/story-linux-amd64
[ ! -d "$HOME/go/bin" ] && mkdir -p $HOME/go/bin
if ! grep -q "$HOME/go/bin" $HOME/.bash_profile; then
echo "export PATH=$PATH:/usr/local/go/bin:~/go/bin" >> ~/.bash_profile
fi
chmod +x story-linux-amd64
mv $HOME/story-linux-amd64 $HOME/go/bin/story
source $HOME/.bash_profile
story version
Initialize
change the <your-moniker>
story init --network odyssey --moniker <your_moniker>
Create a service Story-geth
sudo tee /etc/systemd/system/story-geth.service > /dev/null <<EOF
[Unit]
Description=Story Geth Client
After=network.target
[Service]
User=root
ExecStart=/root/go/bin/story-geth --odyssey --syncmode full
Restart=on-failure
RestartSec=3
LimitNOFILE=4096
[Install]
WantedBy=multi-user.target
EOF
Create a service Story
sudo tee /etc/systemd/system/story.service > /dev/null <<EOF
[Unit]
Description=Story Consensus Client
After=network.target
[Service]
User=root
ExecStart=/root/go/bin/story run
Restart=on-failure
RestartSec=3
LimitNOFILE=4096
[Install]
WantedBy=multi-user.target
EOF
Restart and run
# Story-geth
sudo systemctl daemon-reload && \
sudo systemctl start story-geth && \
sudo systemctl enable story-geth && \
sudo systemctl status story-geth
# Story
sudo systemctl daemon-reload && \
sudo systemctl start story && \
sudo systemctl enable story && \
sudo systemctl status story
Check status
curl localhost:26657/status | jq
Sync from snapshot
Your node must be synchronized for at least one block
Download the latest snapshot provided by the ITRocket team:https://itrocket.net/services/testnet/story/
Wait for full synchronization before proceeding to the next step
Create a validator
story validator export
Export private key
sudo cat /root/.story/story/config/private_key.txt
story validator export --export-evm-key
Import the private key into an EVM wallet
Get the $IP tokens from the faucet only 1 IP per 24 hours.
For create the validator, we need 1024 $IP token.
Create a validator
change the "your_private_key"
story validator create --stake 1024000000000000000000 --private-key "your_private_key" --chain-id 1516
Selfstake to your validator (for exmaple 16980 IP tokens)
change your private key and your Compressed Public Key (hex)
story validator stake --validator-pubkey <Compressed Public Key (hex)> --stake 16980000000000000000000 --private-key "your_private_key" --chain-id 1516
Useful commands ⚙️
node info
curl localhost:26657/status | jq
logs
sudo journalctl -u story-geth -f -o cat
sudo journalctl -u story -f -o cat
restart service
sudo systemctl restart story-geth
sudo systemctl restart story
stop service
sudo systemctl stop story-geth
sudo systemctl stop story
enable service
sudo systemctl enable story-geth
sudo systemctl enable story
disable service
sudo systemctl disable story-geth
sudo systemctl disable story
Delete node 🗑️
sudo systemctl stop story-geth
sudo systemctl stop story
sudo systemctl disable story-geth
sudo systemctl disable story
sudo rm /etc/systemd/system/story-geth.service
sudo rm /etc/systemd/system/story.service
sudo systemctl daemon-reload
sudo rm -rf $HOME/.story
sudo rm $HOME/go/bin/story-geth
sudo rm $HOME/go/bin/story