Story-Geth

Golang execution layer implementation of the Story.

Discord

Binary archives are published at https://github.com/piplabs/story-geth/releases.

Building story-geth

Go version: 1.23.0

go build -v ./cmd/geth
mv ./geth $HOME/go/bin/story-geth
source $HOME/.bashrc
story-geth version

Running story-geth

You can run the mainnet with --story flag attached. Here's an example command:

story-geth --story --datadir="/story/geth/" --verbosity="3" --http --http.corsdomain="*" --http.vhosts="*" --http.addr=127.0.0.1 --http.port="8545" --http.api=web3,debug,eth,txpool --ws --ws.addr=127.0.0.1 --ws.port="8546" --ws.origins="*" --ws.api=debug,eth,txpool --syncmode=full --maxpeers=100

Hardware Requirements

Minimum:

Recommended:

A Full node on the Aeneid test network

Transitioning towards developers, if you'd like to play around with creating Story contracts, you almost certainly would like to do that without any real money involved until you get the hang of the entire system. In other words, instead of attaching to the main network, you want to join the test network with your node, which is fully equivalent to the main network, but with play-IP only.

story-geth --aeneid --syncmode full

The console subcommand has the same meaning as above and is equally useful on the testnet too.

Specifying the --aeneid flag, however, will reconfigure your story-geth instance a bit:

Note: Although some internal protective measures prevent transactions from crossing over between the main network and test network, you should always use separate accounts for play and real money. Unless you manually move accounts, story-geth will by default correctly separate the two networks and will not make any accounts available between them.

Contribution

Thank you for considering helping out with the source code! We welcome contributions from anyone on the internet, and are grateful for even the smallest of fixes!

If you'd like to contribute to story-geth, please fork, fix, commit and send a pull request for the maintainers to review and merge into the main code base. If you wish to submit more complex changes though, please check up with the core devs first on our Discord Server to ensure those changes are in line with the general philosophy of the project and/or get some early feedback which can make both your efforts much lighter as well as our review and merge procedures quick and simple.

Please see the Story Network Guide for more details on configuring your environment, managing project dependencies, and testing procedures.

Security

We welcome responsible disclosure of vulnerabilities. Please see our security policy for more information.

License

The story-geth library (i.e. all code outside of the cmd directory) is licensed under the GNU Lesser General Public License v3.0, also included in our repository in the COPYING.LESSER file.

The story-geth binaries (i.e. all code inside of the cmd directory) are licensed under the GNU General Public License v3.0, also included in our repository in the COPYING file.

Local Development with Story-Localnet

To simplify local development and testing, developers can use the Story-Localnet project, which allows multiple Story nodes to run locally using Docker. This setup facilitates easy testing and experimentation.

Find more information and setup instructions here: Story-Localnet GitHub Repository.