70 lines
2.2 KiB
Markdown
70 lines
2.2 KiB
Markdown
|
|
# @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
|
|
|
|
1. `npm install`
|
|
2. Open at least 4 terminals (you can use `tmux` for this)
|
|
3. In Terminal-1, execute `embark simulator`
|
|
4. In Terminal-2, execute `embark run`
|
|
5. 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
|
|
```
|
|
6. 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:
|
|
1. Install Nodejs with `nvm`
|
|
2. Follow the instructions from Embark for its installation,
|
|
3. `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
|
|
|
|
1. Make sure the contracts are deployed at the correct addresses (`npm run migrate:dev` in `server` directory)
|
|
2. Run `FLASK_APP=./child_chain FLASK_ENV=development flask run --port=8546` in one terminal. This will start a Plasma Chain instance which listens at `localhost:8546` and is also connected to the deployed contracts
|
|
3. 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
|
|
```
|