Ideas de proyectos
ZooBC no tiene máquina virtual, así que nadie despliega contratos en ella. En su lugar ofrece un amplio conjunto de tipos de transacción ya hechos, y un buen proyecto los combina: la cadena es el árbitro y el libro contable, y la app es la cara visible, a menudo una sola página web (crear una app como una sola página HTML). Cada idea de abajo usa solo tipos de transacción que el nodo ya ejecuta, y cada una viene con la pega que debe conocer quien la construya.
Pagos
Pago en río
LiquidPayment (tipo 6) bloquea un importe, en ZBC o en un token, que se libera al destinatario de forma uniforme a lo largo de los complete_minutes elegidos; al final se paga automáticamente el importe completo. LiquidPaymentStop (tipo 262), enviado por cualquiera de las dos partes, paga la parte liberada hasta ese momento y devuelve el resto. La página solo tiene que dibujar el nivel del agua. Conviene saber: el reparto sigue el tiempo entre las marcas de tiempo de las dos transacciones, y la parte del destinatario se redondea hacia arriba: 10 000 000 unidades a lo largo de 3 minutos, detenidas al cabo de 66 segundos, dan 3 666 667 unidades al destinatario y devuelven 6 333 333 (pagos líquidos (flujos)).
Fianza por daños
Un inquilino envía la fianza como un SendZBC en escrow que nombra a un aprobador, una comisión y un plazo (escrow). El aprobador puede aprobar, y el importe va al propietario del piso, o rechazar, y vuelve al inquilino; el aprobador se lleva la comisión en ambos casos. Si nadie actúa, el primer bloque pasado el plazo devuelve el importe y la comisión al inquilino. Pega: el alquiler del escrow se paga al crearlo y nunca se reembolsa, y un plazo más allá del alcance de la poda se rechaza salvo que el depósito de supervivencia de la transacción pague por conservarla ese tiempo.
Cuenta familiar
LinkAccount (55), SetMemberPermissions (57), UnlinkAccount (56) y TransferGroupControl (58) dan a una familia un único saldo detrás de hasta 100 direcciones (grupos de cuentas). Pega: entrar requiere el consentimiento de la dirección que entra y mueve al grupo todo lo que posee; un miembro nuevo solo puede recibir hasta que el controlador le concede permisos; y un miembro que sale no se lleva nada.
Juegos
Salón de dados
CreateApp con los tipos 16 a 19 (dos dados, cara o cruz, ruleta y tragamonedas) juega contra el fondo de apps. La página muestra el resultado unos 30 segundos después y puede leer /api/v1/apps/pool para mostrar la apuesta más grande que permite cada juego. Pega: una apuesta cuyo mayor pago supera el 5 % del fondo se rechaza, y un premio muy grande puede pagarse a lo largo de varios bloques (apuestas en solitario).
Quiosco de tres en raya
El tipo 1, con CreateApp, JoinApp, AppMove y ClaimAppTimeout (apps multijugador). Pega: cada movimiento es una transacción, con su comisión y su espera hasta un bloque; un jugador que se marcha retiene la partida durante 240 bloques antes de que el otro pueda reclamarla; y las cuentas con claves al estilo de Ethereum o de Bitcoin no pueden ocupar un asiento.
Duelo relámpago
Una partida de canal para dos jugadores que se liquida con SettleApp (apps de canal): los movimientos vuelan entre los jugadores como comprobantes firmados, y la cadena solo ve las apuestas y la liquidación. Pega: tu app debe transportar los movimientos entre los jugadores (la billetera oficial usa un relay), guardar cada movimiento firmado que reciba y vigilar la ventana de impugnación de 240 bloques.
Tokens y comercio
Sellos de café
IssueToken (tipo 10) crea un token de sello con 0 decimales, de modo que se mueve en unidades enteras; TransferToken (11) entrega un sello a un cliente; BurnToken (13) gasta los sellos en el mostrador (emitir un token). Pega: BurnToken solo funciona con un token emitido como canjeable, y solo quien tiene una unidad puede quemarla; y un token solo vive mientras se pague su mantenimiento (mantenimiento de un token (persistencia)).
Quiosco de intercambios
CreateSwapOffer (18), AcceptSwapOffer (19) y CancelSwapOffer (20) forman un tablón de intercambios atómicos entre dos activos cualesquiera (ofertas de intercambio). Pega: un solo tomador paga todo el lado pedido, sin ejecuciones parciales, y la caducidad de una oferta solo impide aceptarla, así que una oferta caducada sigue bloqueada hasta que su creador la cancela.
Registros y mensajes
Sello de hash
Una transacción cuyo mensaje lleva el SHA-256 de un archivo demuestra que el archivo existía cuando se produjo ese bloque, y un FundLongevity (52), o el campo de supervivencia, la conserva más allá de la poda (pagar por conservar datos (longevidad)). La página /verify de una pasarela calcula el hash en el navegador y lo busca en la cadena (comprobar un archivo descargado). Pega: sin un depósito de longevidad, los nodos normales podan el sello al cabo de 30 a 60 días, y un primer FundLongevity debe llegar dentro de un intervalo de instantánea, unos 30 días.
Postales selladas
Un mensaje cifrado, marcado con «ZBE1» y sellado con la clave del destinatario, puede llevar hasta 268 bytes de texto (mensajes firmados y cifrados). Pega: solo se sella el texto; la transacción en sí, con su remitente, su destinatario y su hora, es tan pública como cualquier otra.
Iniciar sesión con ZooBC
Un sitio muestra un desafío de un solo uso, el usuario lo firma como un mensaje ZBC-MSG-v2 con las herramientas públicas, una firma Ed25519 sobre SHA3-256("ZBC-MSG-v2" ‖ hash del génesis ‖ mensaje), y el sitio comprueba la firma con la clave de la cuenta. Pega: la firma de mensajes no forma parte del consenso y los nodos no tienen ninguna ruta para ella, así que el sitio la verifica por sí mismo; y la billetera web oficial no firma mensajes.
Lo que requiere un cambio en el nodo
- Un creador de mercado automatizado. ZooBC no tiene pools AMM, por decisión; su exchange es un libro de órdenes más las ofertas de intercambio (mercados y órdenes).
- Solidity o cualquier contrato de la EVM. No hay máquina virtual.
- Un juego nuevo, como el póquer. Las reglas de los juegos no pueden subirse como scripts; un juego nuevo necesita nuevas reglas en el nodo.
- Un juego de crash con botón de retirada. El crash es una apuesta en solitario cuyo objetivo se fija de antemano; no hay ningún movimiento para retirarse.