marketing

Marketing materials (presentations, posters, flyers)
Log | Files | Refs

paso_a_paso.sh (7382B)


      1 # NO USAR ESTE SCRIPT PARA PRODUCCION
      2 
      3 # Este script fue utilizado para la demostracion en la charla:
      4 #    Como armar un sistema de pagos desde el patio de tu casa
      5 # para Nerdearla 2021 en Octubre 20
      6 # https://twitter.com/sebasjm/status/1450874753615552527
      7 
      8 #####
      9 # Setup
     10 #####
     11 
     12 # instalamos algunas herramientas
     13 apt update
     14 apt install -y gnupg less vim procps curl inetutils-ping jq net-tools
     15 
     16 # agregarmos el repositorio debian de taler.net
     17 echo deb https://deb.taler.net/apt/debian bullseye main > /etc/apt/sources.list.d/taler.list
     18 curl https://taler.net/taler-systems.gpg.key | apt-key add -
     19 apt update
     20 
     21 # configuramos nuestra red ad-hoc
     22 echo 127.0.0.1 auditor.taler exchange.taler merchant-backend.taler >> /etc/hosts
     23 
     24 # el banco es un servicio externo
     25 # agregar aqui la IP donde este el banco a usar
     26 echo 172.17.0.3  bank.taler >> /etc/hosts
     27 
     28 # instalamos el software Taler
     29 apt install -y postgresql \
     30   taler-exchange \
     31   taler-auditor \
     32   taler-merchant \
     33   taler-wallet-cli
     34 
     35 #####
     36 # Database
     37 #####
     38 
     39 # para nuestro setup vamos a usar 3 bases de datos
     40 service postgresql start
     41 su - postgres -c 'createuser -s -i -d -r -l -w root'
     42 createdb auditor_db
     43 createdb exchange_db
     44 createdb merchant_db
     45 
     46 #####
     47 # Exchange
     48 #####
     49 
     50 # le damos nombre a nuestra moneda
     51 # el nombre de la moneda esta definido por el sistema bancario al cual
     52 # se conecta este exchange
     53 taler-config -s taler -o currency -V NERDS
     54 
     55 # unidad minima de valor nominal
     56 taler-config -s taler -o currency_round_unit -V $(taler-config -s taler -o currency):0.1
     57 
     58 # id publico
     59 taler-config -s exchange -o MASTER_PUBLIC_KEY -V $(taler-exchange-offline setup)
     60 
     61 # ubicacion en la red
     62 taler-config -s exchange -o base_url -V http://exchange.taler:8081/
     63 
     64 # ubicacion de la base de datos
     65 taler-config -s exchangedb-postgres -o config -V postgres:///exchange_db
     66 
     67 # donde el exchange espera recibir fondos
     68 taler-config -s exchange-account-1 -o payto_uri -V payto://x-taler-bank/bank.taler:5882/sebasjm
     69 
     70 
     71 
     72 # la siguiente configuracion es usada por
     73 #   * taler-exchange-wirewatch
     74 #   * taler-exchange-transfer
     75 
     76 # conexion via REST API con el banco y sus credenciales
     77 taler-config -s exchange-accountcredentials-1 -o wire_gateway_url -V http://bank.taler:5882/taler-wire-gateway/sebasjm/
     78 taler-config -s exchange-accountcredentials-1 -o username -V sebasjm
     79 taler-config -s exchange-accountcredentials-1 -o password -V asd
     80 
     81 # inicializacion de la base de datos del exchange
     82 taler-exchange-dbinit 
     83 
     84 # usamos la herramienta de la wallet para generar una configuracion standard inicial
     85 # que vamos a guardar en el archivo coins.conf
     86 taler-wallet-cli deployment gen-coin-config \
     87   --min-amount $(taler-config -s taler -o currency):0.1 \
     88   --max-amount $(taler-config -s taler -o currency):10 \
     89   >  coins.conf
     90 
     91 #revisar y editar coins.conf para configurar:
     92 # * duracion
     93 # * tamaño
     94 # * honorarios
     95 
     96 #luego agregamos los valores a la configuracion
     97 cat coins.conf >> /etc/taler/taler.conf
     98 
     99 
    100 #tenemos un servicio de exchange casi listo
    101 taler-exchange-httpd -l log.exchange -L debug &
    102 
    103 # en condiciones normales taler-exchange-offline debe usarser desde otra computadora
    104 # desconectada de internet
    105 
    106 # generamos una aprobacion de la cuenta bancaria donde el exchange recibe fondos
    107 # y una aprobacion de los honorarios para un año
    108 taler-exchange-offline \
    109   enable-account $(taler-config -s exchange-account-1 -o payto_uri) \
    110   wire-fee 2021 x-taler-bank $(taler-config -s taler -o currency):0.1 $(taler-config -s taler -o currency):0.1 \
    111   upload;
    112 
    113 # en condiciones normales los procesos *-secmod-* son los unicos que tienen
    114 # acceso a las claves privadas RSA y Eddsa
    115 
    116 # iniciamos los procesos de firma digital
    117 # este proceso puede demorar y es importante esperar a que finalice antes de seguir
    118 taler-exchange-secmod-eddsa -l log.secmod.eddsa -L debug &
    119 taler-exchange-secmod-rsa -l log.secmod.rsa -L debug &
    120 
    121 # normalmente este es un paso de revision de configuracion
    122 # primero se descarga el material en formato json para revisar que todo este en orden
    123 # si no hay differencias con lo esperado se firma el contenido
    124 # finalmente se envia el contenido firmado como aprobacion para que el exchange pueda emitir monedas
    125 
    126 # en este caso lo hacemos en un solo paso
    127 taler-exchange-offline download sign upload
    128 
    129 # si todo funciono correctamente el exchange responde con las configuracion correcta
    130 curl exchange.taler:8081/keys | jq .
    131 
    132 # el servicio wirewatch estara preguntando al banco por transacciones entrantes y salientes
    133 taler-exchange-wirewatch -l log.wirewatch -L debug &
    134 
    135 # el servicio transfer ejecutara movimientos en su cuenta bancaria
    136 taler-exchange-transfer -l log.transfer -L debug &
    137 
    138 # el servicio aggregator simplificara transacciones a un mismo destinatario 
    139 taler-exchange-aggregator -l log.aggregator -L debug &
    140 
    141 # el servicio closer vigilara transacciones que pueden ser cerradas
    142 taler-exchange-closer -l log.closer -L debug &
    143 
    144 
    145 #####
    146 # Auditor
    147 #####
    148 
    149 #ubicacion en la red
    150 taler-config -s auditor -o port -V 8083
    151 taler-config -s auditor -o serve -V tcp
    152 taler-config -s auditor -o base_url -V http://auditor.taler:8083/
    153 
    154 #ubicacion de la base de datos
    155 taler-config -s auditordb-postgres -o config -V postgres:///auditor_db
    156 
    157 # en condiciones normales el exchange y auditor no estan en la misma computadora
    158 
    159 # agregamos el exchange a la lista de servicios para auditar
    160 taler-auditor-exchange -m $(taler-config -s exchange -o master_public_key) -u $(taler-config -s exchange -o base_url)
    161 
    162 # notificamos al exchange de que va a ser auditado
    163 taler-exchange-offline enable-auditor $(taler-auditor-offline setup) $(taler-config -s auditor -o base_url) the_auditor upload
    164 
    165 # inicializamos la base de datos
    166 taler-auditor-dbinit
    167 
    168 # el exchange ahora informa sobre su condicion 
    169 curl exchange.taler:8081/keys | jq .auditors
    170 
    171 # iniciamos el servicio auditor
    172 taler-auditor-httpd -l log.auditor -L debug &
    173 
    174 #####
    175 # Merchant
    176 #####
    177 
    178 # ubicacion en la red
    179 taler-config -s merchant -o port -V 9966
    180 taler-config -s merchant -o serve -V tcp
    181 
    182 # ubicacion de la base de datos
    183 taler-config -s merchantdb-postgres -o config -V postgres:///merchant_db
    184 
    185 # agregamos una referencia al exchange
    186 # de esta manera confiamos en la pagos con monedas emitidas por dicho exchange
    187 taler-config -s merchant-exchange-nerds -o exchange_base_url -V $(taler-config -s exchange -o base_url)
    188 taler-config -s merchant-exchange-nerds -o master_key -V $(taler-config -s exchange -o MASTER_PUBLIC_KEY)
    189 taler-config -s merchant-exchange-nerds -o currency -V $(taler-config -s taler -o currency)
    190 
    191 # alternativamente, agregamos una referencia al auditor
    192 # de esta manera confiamos en pagos con monedas emitidas por cualquier exchange auditado por dicho auditor
    193 taler-config -s merchant-auditor-nerds -o AUDITOR_BASE_URL -V $(taler-config -s auditor -o base_url)
    194 taler-config -s merchant-auditor-nerds -o AUDITOR_KEY -V $(taler-auditor-offline setup)
    195 taler-config -s merchant-auditor-nerds -o currency -V $(taler-config -s taler -o currency)
    196 
    197 # inicializamos la base de datos
    198 taler-merchant-dbinit
    199 
    200 # iniciamos el servico auditor
    201 taler-merchant-httpd -l log.merchant -L debug &
    202 
    203 # El sistema esta completo
    204 # Los proximos pasos son:
    205 #  * obtener una billetera GNU Taler en https://wallet.taler.net
    206 #  * extraer dinero desde el banco usando el exchange
    207 #  * generar una orden de compra en el backoffice del comerciante
    208 #  * utilizar la billetera para pagar la orden de compra
    209 
    210