API documentation (in progress) is available at ReadTheDocs.
But why would you do that?
A thrilling demo
Security Audit (v0.16a)
Christopher M. Hobbs of Ascia Technologies performed a security audit on Shadowlands; here is the report.
- Install a modern Python3 from the official repo: Python for MacOS
- The Python MacOS installer includes a folder that has a script that fixes your SSL certificates. MacOS hosed the certs a while ago, and if it's not fixed, pip will not work. Run that script, and the other one that sets up your shell environment.
- Install homebrew.
$ brew tap kayagoban/shadowlands $ brew install shadowlands $ shadowlands
Use the provided .deb package on the releases page
Ubuntu 16.04 LTS will first need a modern python3 - here are instructions on how to set up python 3.6 on Ubuntu 16.04 LTS: http://ubuntuhandbook.org/index.php/2017/07/install-python-3-6-1-in-ubuntu-16-04-lts/
How the loading script works
What you get here is a loading script, which creates a virtual python environment in ~/.shadowlands. The script also bootstraps the Shadowlands application from a very simple package management smart contract at sloader.shadowlands.eth. You can find the source code to the shadowlands app itself under shadowlands-core project
The script will install dependences from pip into the shadowlands python environment, and then execute the program. Every time you run shadowlands, the newest version of the software registered to app.shadowlands.eth is downloaded and executed. This is similar to the on-demand nature of a website, which allows rapid deployment of new features and bugfixes. Most of the time, your cached version of shadowlands will match the sha256 checksum registered with sloader.shadowlands. If it you don't have a cached file that matches, the new version will be retrieved and loaded.
The exciting part
A public repo of the ens.shadowlands app is available in the example-dapps-shadowlands project.
sl_dapp.eth provides the APIs that are used for writing these shadowlands dapps.
You can load the ens.shadowlands dapp by selecting the Dapps menu, choosing "Run Network Dapp", and typing ens.shadowlands as the Dapp location. It allows you to manage auctions and manipulate your owned ENS domains.
Like the shadowlands app itself, the freshest version of your network dapp is loaded, and checked against its registered sha256 checksum on the sloader.shadowlands contract.
You're gonna need a credstick.
Shadowlands requires a credstick (which some people call a hardware wallet) to function. The following hardware has been tested: Ledger Nano S, Ledger Blue, Trezor original and Trezor T.
If you have a local node, you will probably want to run the parity node with
--no-hardware-wallets or your geth node with
--no-usb or else the node may interfere with shadowlands communicating with your hardware.
Why does shadowlands require a credstick? Because it's a basic precaution that everyone needs to take, and there's no excuse not to have one - especially if you're downloading software and running it on your computer, which all of us do.
This is a free software project
Every component of Shadowlands is freely available under the MIT license. This is not a not-for-profit project - its only aim is to create a great new way to interact with Ethereum.
This is a Proof of Concept release, not production software!
Many things need to be done and added. Among them:
- better handling of hardware wallets that go to sleep
- play nicer with clients that also access the wallet
- a more elegant version of the text UI api
- tons of documentation
- more tests