_____ __ __ __ __
/ ___// /_ ____ _____/ /___ _ __/ /___ _____ ____/ /____
\__ \/ __ \/ __ `/ __ / __ \ | /| / / / __ `/ __ \/ __ / ___/
___/ / / / / /_/ / /_/ / /_/ / |/ |/ / / /_/ / / / / /_/ (__ )
/____/_/ /_/\__,_/\__,_/\____/|__/|__/_/\__,_/_/ /_/\__,_/____/
Shadowlands is a 100% Python, TextUI Dapp platform for ethereum, built on Python3.5+, web3.py and asciimatics
(click on the image below to see a live demo)
- 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.
Then, open a terminal and...
$ 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/
Then, open a terminal and...
$ shadowlands
- Install a modern Python3
- run
git clone https://github.com/kayagoban/shadowlands.git
in a terminal - Install trezor udev rules and ledger udev rules
- edit line 5 of scripts/shadowlands to point the variable
SL_DIR
to where the repo was cloned to. - run
scripts/shadowlands
and watch pip install fail. - figure out what the pip modules need and do that.
- goto 5
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.
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.
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, at times, interfere with shadowlands communicating with your hardware.
I strongly recommend using a local node or node accessible by HTTP on the same network. Infura sorta-works.
You can write, deploy and register your own python based dapp modules that can be loaded within shadowlands, without any HTML, CSS or Javascript.
API documentation is available at ReadTheDocs.
There are two existing dapps on shadowlands - the CDP manager dapp at cdp.shadowlands.eth, and Burninator at burninator.eth, the example dapp from the tutorial.
You can run either dapp by referencing the ens name they are registered under, within the "Run network dapp" option within Shadowlands.
The source code to both projects is available on Github (linked to their names above).
If your company needs a shadowlands dapp, I can be contracted to make one for you. Contact me at [email protected] to discuss the scope of your company's project.
Christopher M. Hobbs of Ascia Technologies performed a security audit on Shadowlands; here is the report.
You can support Shadowlands directly by sending Ether and other things to shadowlands.eth