Skip to content
Snippets Groups Projects

Development

Open Agustin Dorda requested to merge development into master
3 files
+ 26
3
Compare changes
  • Side-by-side
  • Inline
Files
3
+ 32
14
@@ -10,7 +10,7 @@ Python 3.5>= ó docker
### Instalación para desarrollo con virtual host
Crear virtual host y luego ejecutar los sig comandos
Crear virtual env (venv) y luego ejecutar los sig comandos
```sh
cd /carpeta/del/proyecto
pip install -r requirements.txt
@@ -24,28 +24,34 @@ pip install coverage
pip install ipython
```
### Instalación para desarrollo con docker y pycharm
### Instalación para desarrollo con docker
```sh
cd /carpeta/del/proyecto/
docker build -t trazabilidad .
docker run --rm --name migrate -v $(pwd):/opt/project -w /opt/project trazabilidad python manage.py migrate
docker-compose -f docker-compose.yml up -d
```
En pycharm ir a Settings-> Project Interpreter y elegir Remote Python 3.5 Docker
Este docker-compose.yml hace los siguientes pasos:
- crea la carpeta logs/ y crea el archivo trazabilidad/local_settings.py a partir de trazabilidad/local_settings_dev.py
- levanta una blockchain mock de Ganache
- inicia las migraciones de django, sólo deberían ser las básicas, y usando SQLite
- crea un usuario de django con permisos de superadmin con nombre "admin" y con contraseña "Clave123!"
- levanta la aplicación
Opciones
#### Si se está usando PyCharm
Ir a Settings-> Project Interpreter y elegir Remote Python 3.5 Docker
Esperar a que se carguen los skeletons
En Run/Debug Configurations agregar configuracion de django server con el intérprete de docker del proyecto, y en Host poner 0.0.0.0 y en Port 8000
En la carpeta trazabilidad/ hacer un local_settings.py que puede ser copia o link simbólico de los que vienen de ejemplo
Optativo:
```sh
docker-compose up -d
```
Los tests de la aplicación dapp son de integración y la idea es que corran sobre ganache para que ejecuten más rápido, ganache viene en el docker-compose, pero no hace falta para correr la aplicación
### Instalación productiva
Crear virtual host y luego ejecutar los sig comandos
Crear virtual env (venv) y luego ejecutar los sig comandos
```sh
cd /carpeta/del/proyecto
pip install -r requirements.txt
@@ -69,16 +75,20 @@ cd /carpeta/de/aplicacion
python manage.py unlock_account
```
Si el smart contract del negocio no está deployado:
#### Si el smart contract del negocio no está deployado:
- Loggear en el admin
- Loggear en el admin, en el endpoint /admind
- Ir a Config Constance
En la sección Contract Info cargar
- bytecode del contrato
- ABI del contrato
Estos se pueden conseguir compilando el contrato con el código que está en la carpeta smart_contract/
La aplicación no tiene funcionalidad para compilar código de solidity, pero se puede usar la IDE online Remix para compilar el código, y así obtener el ABI y el ByteCode
La aplicación no tiene funcionalidad para compilar código de solidity, pero se puede usar la IDE online Remix para compilar el código, y así obtener el ABI y el ByteCode.
También en la carpeta smart_contract/ dentro del directorio del proyecto están el archivo abi.json y bytecode, que tienen respectivamente el ABI y el código del compilado de la versión de trazabilidadFactory.sol que está en la misma carpeta
Ahora se pueden hacer 2 cosas para deployar el smart contract
- Ahora en consola
```sh
@@ -87,6 +97,14 @@ python manage.py deployar_trazabilidad
```
Opcional: dar el gas a usar cuando el prompt lo pida
Opcional: si se tiene docker instalado, se puede correr el siguiente comando
```sh
cd /carpeta/del/proyecto
docker-compose -f deploy-smart-contract-docker-compose.yml up -d
docker-compose -f deploy-smart-contract-docker-compose.yml logs --tail 2
```
El log que menciona Contract address: 0xalgunaddress
- De nuevo en el admin, en Config Constance
En la sección Contract Info cargar
- contract address con el output del comando deployar_trazabilidad
Loading