Cadena de Organización Descentralizada

junio 17, 2020 VICTOR HUGO LAZARTE 0 Comments

Descripción

Uno de los desafíos de las nuevas empresas es obtener la financiación inicial necesaria para el alquiler, el equipamiento y los salarios. La Cadena de Organización Descentralizada (DOC, por sus siglas en inglés) permite a las empresas comenzar su propia cadena de bloques y recibir fondos mediante la venta de tokens a los inversores. Los inversores a su vez tienen la oportunidad de tomar e influir en las decisiones de la empresa mediante la creación de encuestas, o ejecutar un nodo de forja que cree una cadena descentralizada y gane recompensas. Cualquiera que haya comprado suficientes fichas puede convertirse en miembro de la junta y crear encuestas. Además, los titulares de tokens pueden registrarse como inversores para poder votar en las encuestas. Una vez finalizada la encuesta, se espera que la compañía siga la respuesta más votada.
Ejemplo:
Nueva encuesta: ¿Deberíamos contratar a 2 empleados adicionales de I + D?
Opciones: [Sí] [No]
La aplicación DOC está construida con el SDK de Lisk y consta de un servidor y una parte del cliente, ambos escritos en Javascript. El servidor ejecuta la cadena de bloques real usando NodeJS y una base de datos PostgreSQL. La parte del cliente actúa como una interfaz para el servidor y se crea utilizando NodeJS, React, bootstrap y Lisk Elements. Puede acceder a la interfaz yendo a http://doc.korben3.com
Descubrí que podía reutilizar partes de las transacciones personalizadas de mi Prueba de concepto anterior, Global Data Chain . Después de un tiempo, tendrá varios transacciones personalizadas realizadas por varios desarrolladores, lo que facilitará y agilizará la creación de una cadena de bloques adaptada a sus necesidades.

Reglas

Las siguientes reglas son parte de DOC:
  • Los fundadores tienen una cantidad significativa de tokens, que también se pueden utilizar para la financiación futura de la empresa.
  • La oferta inicial de tokens (ITO) permite a las partes interesadas invertir en la empresa de inicio e incluso tomar un puesto de miembro de la junta.
  • Las ganancias trimestrales se utilizan para recomprar y luego quemar tokens de los intercambios, aumentando el precio del token para los inversores y también disminuyendo la cantidad existente de tokens.
  • Después de que finaliza una encuesta, la empresa debe seguir la decisión más votada.
  • Si se violan las reglas anteriores, los inversores perderán la fe, venderán sus tokens y disminuirán el valor de los tokens de los Fundadores.

Uso

Ver encuestas

Puede encontrar todas las encuestas haciendo clic en Resumen de encuestas en el menú en la parte superior izquierda de la página. Desde allí, mire a través de las diferentes páginas o filtre para ver Todas las encuestas, las Encuestas abiertas o las Encuestas cerradas.

Ver encuestas

Para votar en una encuesta, vaya a Abrir encuestas y haga clic en una pregunta de la encuesta. Esto lo llevará a la página de detalles de Encuestas. Incluso puede compartir el enlace a la encuesta copiando la url, por ejemplo: doc.korben3.com/poll/8097342680131618285L.

Iniciar sesión

Antes de poder crear una encuesta, primero debe iniciar sesión. Vaya a la esquina superior derecha de la página e ingrese una frase de contraseña válida para la Cadena de organización descentralizada. Alternativamente, use la frase de contraseña ya completada, que pertenece a una cuenta de inversionista y le permite votar. Luego haga clic en el botón Iniciar sesión.

Iniciar sesión

Después de iniciar sesión, aparece una opción de menú adicional llamada Información de la cuenta. Aquí puede verificar cuántos tokens DOC tiene la cuenta y si está registrada como inversionista o miembro de la junta. Dependiendo de su tipo de usuario, puede votar o votar y crear nuevas encuestas.

Informacion de cuenta

 

Registrar Cuenta

Si posee suficientes tokens DOC, puede registrar su cuenta iniciando sesión y luego yendo a Información de la cuenta. Allí puede hacer clic en el enlace llamado Registrarse como inversionista o miembro de la junta. O vaya a doc.korben3.com/register

Registrarse

Para registrarse, cree un buen nombre de usuario y elija un tipo de usuario: inversor o miembro de la junta . Si la cuenta tiene saldo suficiente, se registrará después de hacer clic en el botón Registrar cuenta.

Página de registro

 

Vote en una encuesta

Para votar en una encuesta, seleccione una de las Encuestas abiertas que puede encontrar en la Descripción general de las encuestas. Lea la pregunta y haga clic en la opción de círculo antes de la respuesta que desea elegir. Luego haga clic en el botón Votar. Recuerde que para votar primero debe iniciar sesión, debe tener saldo suficiente y debe estar registrado como inversionista o miembro de la junta. También puede ver cuánto tiempo queda antes de que se cierre la encuesta.

Detalle de la encuesta

 

Crea una nueva encuesta

Para crear una nueva encuesta, primero debe estar registrado como miembro de la junta. Si quieres probarlo, solo pide una cuenta a korben3 en Discord . Vaya a Crear encuesta y complete una buena pregunta relacionada con los negocios y al menos 2 respuestas. Asegúrese de revisar la encuesta y luego haga clic en el botón Enviar encuesta. Creará la encuesta en una dirección única. Puede encontrar la encuesta creada yendo a Descripción general de encuestas y seleccionando Abrir encuestas. Haga clic en la encuesta y copie la url para compartirla con otros.

Nuevo sondeo


Transacciones personalizadas

Se utilizan las siguientes transacciones personalizadas:
Tipo
Nombre
Descripción
Tarifa (DOC)
101
RegisterInvestorTransaction
Registrarse como inversor.
1000
102
RegisterBoardMemberTransaction
Registrarse como miembro de la junta.
100000
103
AddPollTransaction
Añadir una nueva encuesta.
1000
104
CastVoteTransaction
Emitir un voto.
100

Puede encontrar el código fuente en GitHub: 
korben3 - Cadena de organización descentralizada

Registrarse como inversor

Nombre de archivo: register-investor_transaction.js
Esta transacción permite a los propietarios de tokens registrarse como inversores. Los inversores pueden votar en las encuestas creadas por los miembros de la junta. La tarifa se establece en 1000 DOC, por lo que el umbral para participar es bajo.
En el método validateAsset () nos aseguramos de que la transacción cumpla con las siguientes reglas:
  • La propiedad user.name está presente y es igual o menor que 32 caracteres
  • La propiedad user.type está presente y el valor se establece en "inversor"
  • La transacción contiene solo 1 objeto de activo y solo 2 propiedades de usuario
A continuación se muestra el código que asegura que user.type esté configurado como "inversor" o, de lo contrario, arrojará un error.
if ( ! user . type || user . type ! == "inversor" ) {
errores . empujar (
nuevo TransactionError ( "Tipo de usuario no válido para esta transacción" )
) ;
}
Después de validar la transacción (tx), el tipo de inversor se aplicará a la cuenta de los usuarios. Y el usuario podrá votar en una encuesta.

Registrarse como miembro de la junta

Nombre de archivo: register-board-member_transaction.js
Registrarse como miembro de la junta cuesta 100000 DOC, esta es una tarifa alta prevista porque los miembros pueden crear nuevas encuestas que cambien la dirección de la empresa. Tanto la empresa como los inversores se benefician de las buenas decisiones, por lo que cualquier encuesta nueva se toma muy en serio. Los miembros de la junta también pueden votar.

Agregar nueva encuesta

Nombre de archivo: add-poll_transaction.js
Con esta transacción, los miembros de la junta pueden crear nuevas encuestas para 1000 DOC. Una encuesta está abierta durante 7 días, después de lo cual no es posible votar ninguna de las respuestas. Cuando se cierre la encuesta, se espera que la compañía siga el resultado, que es la respuesta con la mayor cantidad de votos. Si la empresa decide ignorar el resultado, disminuirá la confianza y los inversores podrían decidir vender grandes partes de sus tokens, disminuyendo el valor.
El código de transacción de la encuesta realiza varias verificaciones para asegurarse de que se envíen encuestas válidas:
  • Una pregunta debe estar presente y tener la longitud correcta.
  • Se permiten al menos 2 y un máximo de 5 respuestas y deben tener la longitud correcta.
  • No se permiten trampas, por lo que no puede comenzar con los votos presentes.
  • El remitente debe estar registrado como miembro de la junta.
  • Si la dirección de la encuesta ya contiene una encuesta. La sobrescritura no está permitida.
Por ejemplo, el siguiente código verifica si el remitente está registrado como miembro de la junta.

if ( remitente . activo . usuario . tipo ! == "junta" ) {
errores . empujar (
nuevo TransactionError ( "El remitente no está registrado como miembro de la junta" )
) ;
}

Voto emitido

Nombre de archivo: cast-vote_transaction.js
Los propietarios de tokens registrados como inversores o miembros de la junta pueden votar en cualquier encuesta abierta. Un voto cuesta 100 tokens DOC. Se permiten múltiples votos sobre una respuesta porque esto muestra que alguien está dispuesto a gastar muchos tokens para tomar una determinada decisión. Los poseedores de tokens solo se benefician de buenas decisiones, por lo que cualquier voto se considera cuidadosamente. Una vez que se cierra la encuesta, ya no es posible votar y la cadena de bloques rechaza el voto. La transacción de voto emitido verifica si el activo de voto es válido, si la encuesta aún está abierta y si el remitente está registrado como miembro de la junta o inversionista.
El siguiente código en el método applyAsset agrega el voto.
  • Si no hay votos, simplemente agrega un nuevo activo de votación con el primer voto del remitente.
  • Si la respuesta ya ha sido votada, aumenta el recuento de votos de esa respuesta.
  • Si ya hay votos pero esta es una nueva respuesta, almacena todos los votos anteriores y agrega la nueva respuesta con un valor de 1.
if ( destinatario . activo . encuesta . votos ) {
dejar votos = destinatario . activo . encuesta . votos ;
if ( votos [ voto ] ) {
++ votos [ voto ] ;
destinatario . activo . encuesta . votos = votos ;
} más {
destinatario . activo . encuesta . votos = { ... votos , [ voto ] : 1 } ;
}
} más {
destinatario . activo . encuesta . votos = { [ voto ] : 1 } ;
}
tienda . cuenta . conjunto ( destinatario . dirección , destinatario ) ;

API

La API pública está disponible en: 167.179.98.242:4000 . Para obtener una lista de puntos finales disponibles, consulte la documentación de la API en Lisk.io
Llamadas de ejemplo:
Consulte el estado del nodo: http://167.179.98.242:4000/api/node/status

DOC extendido

La versión actual de la Cadena de organizaciones descentralizadas podría ampliarse con pequeñas funciones, como establecer una duración de la encuesta personalizada, agregar un tipo de usuario para los fundadores o crear una página "Crear nueva cuenta". O con nuevas formas de mover más estructura y comunicación de una empresa a la cadena de bloques DOC además de las encuestas. Por ejemplo: Permitir a los fundadores publicar noticias mensuales en formato de blog. Agregar tipos de usuarios empleados y otorgarlos automáticamente por ciertos logros o pagarles un bono mensual en tokens DOC. Crear objetivos de la empresa a corto y largo plazo y activar ciertas acciones en caso de éxito o fracaso.
Hay muchas posibilidades con las transacciones personalizadas del Lisk SDK. Tener una empresa blockchain descentralizada puede aumentar la confianza, la transparencia y la eficiencia. ¡Siéntase libre de usar el código en GitHub para explorar y crear sus propias versiones!
Para obtener más detalles sobre el proyecto de la Cadena de organizaciones descentralizadas y el código, consulte su  repositorio de GitHub . 

Descripción Uno de los desafíos de las nuevas empresas es obtener la financiación inicial necesaria para el alquiler, el equipamient...