63918ff86b | ||
---|---|---|
.. | ||
child_chain | ||
client | ||
contract_binds | ||
utils | ||
.flake8 | ||
License.md | ||
Makefile | ||
README.md | ||
auto_respond_challenge.py | ||
benchmark.py | ||
challenge_after_demo.py | ||
challenge_before_demo.py | ||
challenge_between_demo.py | ||
config.py | ||
demo.py | ||
dependency_config.py | ||
dump_test_data.py | ||
requirements.txt | ||
unit_test.py |
README.md
@rramos notes
I configured the project to run with Embark (Only demo.py was tested). To run this project in Ubuntu, the following steps need to be executed
npm install
- Open at least 4 terminals (you can use
tmux
for this) - In Terminal-1, execute
embark simulator
- In Terminal-2, execute
embark run
- In Terminal-3:
cd plasma_cash
virtualenv erc721plasma -p python3.6
source erc721plasma/bin/activate
pip install -r requirements.txt
FLASK_APP=./child_chain FLASK_ENV=development flask run --port=8546
- In Terminal-4:
cd plasma_cash
source erc721plasma/bin/activate
python demo.py
Most of the previous instructions are covered here, I just wrote them here for quick reference.
If installing the server from scratch:
- Install Nodejs with
nvm
- Follow the instructions from Embark for its installation,
sudo apt install virtualenv python3 python3-dev libssl-dev build-essential
NOTE: nvm
and Embark must be installed with a normal user. Don't use root
!
NOTE2: The contract addresses are hardcoded in config.py. If you want to execute the demo after it has already executed, you need to restart both Embark and its simulator
Development Dependencies
A patched version of web3.py is used because otherwise it does not work with Ganache due to issue #674. In addition, in order to be able to monitor events, PR #827, which is not merged yet. Pyethereum dependencies broke recently so we need to manually install a slightly older version of rlp encoding. Flask is used for server purposes.
On OSX + Homebrew
source /usr/local/bin/virtualenvwrapper.sh
mkvirtualenv erc721plasma --python=/usr/bin/python3.6
pip install -r requirements.txt
Launch Plasma Chain
- Make sure the contracts are deployed at the correct addresses (
npm run migrate:dev
inserver
directory) - Run
FLASK_APP=./child_chain FLASK_ENV=development flask run --port=8546
in one terminal. This will start a Plasma Chain instance which listens atlocalhost:8546
and is also connected to the deployed contracts - Run
python demo.py
TODO Should probably bundle these into makefiles, i.e. make server
should launch the plasma chain.
Testing
make test
Linting
make lint