Características recientes y hoja de ruta 2016

Nodo de origen: 1576913

Una actualización de la fábrica de MultiChain

Como un cambio de las publicaciones del blog sobre blockchains en general, me gustaría proporcionar una actualización sobre MultiChain, tanto en términos de mejoras recientes como de nuestra hoja de ruta para 2016.

Primero, me gustaría agradecer a los miles de ustedes que han descargado y construido MultiChain, Preguntas solicitadas y nos envió sus comentarios. En los ocho meses transcurridos desde el primer lanzamiento público, nuestras estadísticas han mostrado un crecimiento orgánico constante en el tráfico y las descargas, y espero que esto signifique que estamos dando en el clavo. De hecho, sin nombrar nombres, sabemos que MultiChain se ha utilizado con éxito para pilotos de blockchain de larga duración en algunos de los bancos, empresas consultoras, empresas de tecnología financiera y de TI más grandes del planeta.

Una pregunta que nos hacen a menudo es por qué MultiChain ha estado en "alfa" durante tanto tiempo. La respuesta simple es que nos han bombardeado con solicitudes de funciones, la mayoría de las cuales tienen sentido para nosotros, por lo que nos hemos centrado en agregar estas mejoras en lugar de llevar el producto a la versión beta. Habiendo dicho eso, debería encontrar que MultiChain es muy estable para el software alfa, y lo hemos probado a fondo bajo cargas extremas.

También quiero explicar cómo estamos posicionando MultiChain en el espacio cada vez más amplio de las plataformas blockchain. En los últimos seis meses, se han anunciado muchos productos competidores, se han formado (cuasi) consorcios, las empresas han recaudado decenas de millones de dólares y, en ocasiones, hemos visto algunos lanzamientos de software reales. Por supuesto, la competencia es natural e inevitable y esperamos ver cómo se desarrollan estas otras plataformas. Sin duda, tomaremos prestadas sus mejores ideas, y asumimos que devolverán el cumplido.

Entonces, ¿dónde encaja MultiChain con todo este ruido? En pocas palabras, se centra en producto y practicidad:

  • Estabilidad. Bifurcando desde Bitcoin Core, la implementación de referencia para la red bitcoin, MultiChain se basa en los años de estabilidad y seguridad ganadas con esfuerzo que provienen de administrar miles de millones de dólares en valor de criptomonedas en la Internet abierta. Para ser claros, el código base de Bitcoin Core tiene limitaciones arquitectónicas, y es posible que eventualmente tengamos que alejarnos de él. No obstante, para los requisitos actuales de los usuarios, el costo de hacerlo superaría significativamente los beneficios.
  • Facilidad de uso. Muchos usuarios de MultiChain nos han dicho que es mucho más fácil de usar que las plataformas de blockchain de la competencia. Ni siquiera puedo recordar cuántas veces le he dicho a alguien que puede pasar de cero a su propia cadena de bloques privada en minutos, y simplemente no me han creído. Pero es realmente cierto, solo siga las instrucciones en el descargar y el comienzo páginas y compruébelo usted mismo. Sin dependencias, sin compilación, sin meterse con Docker. Solo tres ejecutables independientes y un archivo README.
  • Caracteristicas. Cuando se lanzó por primera vez MultiChain, tenía muchas menos funciones que en la actualidad. Sin control de activos por dirección, sin transacciones de intercambio atómico, sin metadatos de transacciones fáciles. Entonces, ¿cómo decidimos qué agregar? Simple: escuchamos a nuestros usuarios. A veces saben exactamente lo que quieren, como la emisión de activos de seguimiento, y estamos felices de complacerlos. Otras veces saben lo que quieren lograr, pero no saben cómo expresarlo como una característica, y es nuestro trabajo resolverlo. De cualquier manera, la hoja de ruta de MultiChain está impulsada sin descanso por los comentarios de los usuarios, por lo que continuará.
  • Compatibilidad con Bitcoin. Si está creando una solución blockchain, encontrará que el nodo es solo una pequeña parte de la imagen. Es posible que necesite carteras móviles o web, soluciones de gestión de claves y una biblioteca en algún lenguaje oscuro para decodificar, firmar y codificar transacciones. MultiChain está diseñado para hacer que todo esto sea lo más simple y rápido posible, manteniendo la máxima compatibilidad con bitcoin, para lo cual se encuentra disponible gratuitamente una gran cantidad de información, herramientas y código. Para probar el punto, MultiChain puede incluso ser configurado como nodo en la red bitcoin.

Básicamente, nuestro objetivo es deleitar a nuestros usuarios y creemos firmemente que este es el camino más seguro hacia el éxito comercial. En esa nota, me gustaría describir algunas de las nuevas funciones agregadas en los últimos meses.

Emisión de activos subsiguientes (alfa 17)

Esta solicitud ha existido por un tiempo, y es la pregunta más votada en las preguntas y respuestas del desarrollador. Entonces, ¿por qué tomó tanto tiempo? Puedes culparnos por ser puristas. Verá, en términos de seguridad, no hay diferencia entre (a) emitir un billón de unidades de un activo la primera vez y mantener la mayoría de ellos fuera de circulación, y (b) permitir emisiones posteriores de más unidades del mismo activo.

Pero resulta que, desde la perspectiva de nuestros usuarios, hay is una gran diferencia entre los dos casos, porque no es tan fácil diferenciar las unidades en circulación activa de las que están sentadas al margen. Por eso, nos complace anunciar que, en la versión lanzada hoy, cuando emite un activo, puede decidir si ese activo está abierto o cerrado. Si está abierto, la parte emisora ​​original puede crear más unidades tantas veces como quiera.

Por otro lado, MultiChain ahora también proporciona una 'dirección de grabación' canónica para cada cadena. Esta dirección está llena de X y, por lo tanto, obviamente se creó sin una clave privada correspondiente (hacerlo llevaría una cantidad de tiempo interminable). Por lo tanto, las unidades de activos enviadas a esta dirección nunca se pueden gastar y se destruyen de manera transparente. Tenga en cuenta que, por su seguridad, la dirección de grabación debe tener permisos de recepción explícitamente concedidos antes de que pueda utilizarse.

Llamadas a la API: issue, issuefrom, issuemore, issuemorefrom, listassets, getinfo respuesta burnaddress campo.

Explorador de cadenas múltiples

Junto con alpha 17, estamos lanzando la primera beta del código abierto y gratuito. Explorador de cadenas múltiples. Esto proporciona una vista intuitiva basada en la web del estado global de una cadena de bloques MultiChain, similar a los exploradores de cadenas de bloques que los usuarios de bitcoins conocen y aman. Le permite ver rápida y cómodamente transacciones, bloques, activos y direcciones, así como las conexiones entre ellos, todo desde la comodidad de su navegador web favorito.

El MultiChain Explorer se bifurcó del popular Abe proyecto, escrito en Python y alimentado por SQLite. Se conecta a la API de un nodo MultiChain local e incluye un servidor web autónomo para que no haya dependencias adicionales. Esperamos que disfrute de esta herramienta y agradecemos sus comentarios para ayudarnos a mejorarla aún más.

Modo de comando interactivo (alfa 16)

Como bifurcación de Bitcoin Core, MultiChain heredó el bitcoin-cli herramienta, que apropiadamente cambiamos de nombre a multichain-cli por supuesto. Esta herramienta proporciona una interfaz de línea de comandos conveniente para la API JSON-RPC de MultiChain, lo que permite que las llamadas a la API se envíen desde la línea de comandos del sistema, con sus respuestas mostradas en la terminal. Detrás de escena, lee las credenciales de la API del archivo de configuración de la cadena correspondiente, crea la solicitud JSON-RPC y decodifica su respuesta.

Como usuarios de MultiChain, una frustración que teníamos era que multichain-cli tenía que ejecutarse por separado para cada solicitud de API. Aparte de la sobrecarga del sistema, esto evita el tipo de interacción fluida que proporcionan las bases de datos SQL. Y así lo arreglamos. A partir de alpha 16, si ejecuta multichain-cli [chain-name] sin comando, se le coloca en un modo interactivo que le permite escribir comandos repetidamente y ver su respuesta. El modo interactivo admite funciones de edición estándar como el historial (flechas hacia arriba y hacia abajo), saltar al inicio (Ctrl A) o al final (Ctrl E) de la línea y pasar a la palabra siguiente (Ctrl →) y anterior (Ctrl ←) .

Verificación de firmas más rápida (alfa 15)

Cuando se trata de rendimiento en bitcoin o MultiChain, el cuello de botella más crucial es la verificación del Firmas ECDSA sobre el que se construye el modelo de seguridad de blockchain. El software Bitcoin Core original se basó en una biblioteca de código abierto llamada OpenSSL para la generación y verificación de firmas, que hizo el trabajo, aunque tuvo algunos problemas con maleabilidad, lo que significa que más de una firma era válida para una determinada clave privada y carga útil.

Las versiones recientes de Bitcoin Core introdujeron una nueva biblioteca para la firma y verificación de ECDSA, llamada libsecp256k1. Esta biblioteca, escrita desde cero por desarrolladores de blockchain de clase mundial, elimina la dependencia de OpenSSL, resuelve problemas de maleabilidad y funciona varias veces más rápido. Uno de los beneficios de derivarse de Bitcoin Core es que MultiChain puede aprovechar este tipo de mejoras, que son revisadas y probadas exhaustivamente por pares antes de implementarse en la red bitcoin. Entonces, alpha 15 hace exactamente eso con libsecp256k1.

Activar permiso (alfa 14)

Al desarrollar la primera versión de MultiChain, enfrentamos un dilema en términos de permisos. Por un lado, no tendríamos problemas para inventar e implementar un modelo de permisos extremadamente poderoso, con múltiples capas de administradores, permisos por activo y esquemas de votación ponderados. Por otro lado, sabíamos que esto agregaría complejidad desde la perspectiva del usuario y no necesariamente coincidiría con las necesidades del usuario. Así que decidimos comenzar con un modelo simple, que contiene solo seis tipos de permisos (conectar, enviar, recibir, emitir, minar, administrar) y algunas votaciones sencillas basadas en consenso para los cambios de privilegios más importantes. Esperábamos que este modelo se volviera más complejo con el tiempo, pero impulsado por los requisitos del usuario en lugar de nuestras propias teorías.

Resulta que, en este caso, lo simple es bastante bueno. Pero un socio serio con el que estamos trabajando necesitaba algo más. Verá, una dirección MultiChain con privilegios de administrador tiene el poder de controlar todo tipo de permisos en una cadena de bloques, sujeto en algunos casos al consenso con otros administradores. Pero este socio quería darle a una dirección el poder de controlar la conexión, el envío y la recepción de permisos de otros solo, con el propósito de la incorporación, y no tener influencia en procesos más cruciales como la minería y la emisión de activos. Así que agregamos un nuevo permiso de 'activación' que hace exactamente esto. Este también fue el primer ejemplo de un socio que paga para implementar una función que necesitaban en el producto, una ventaja para todos, si es que alguna vez hubo una.

API de transacciones de billetera (alfa 13)

Como una bifurcación de Bitcoin Core, MultiChain heredó algunos de los malos junto con los buenos. Uno de los puntos débiles de Bitcoin Core es la API para recuperar información sobre las transacciones en la billetera del nodo local. Ofrece dos opciones: (a) el getrawtransaction llamada que decodifica el contenido binario de las transacciones, pero no explica cómo afectaron a la billetera local, y (b) el gettransaction y listtransactions llamadas que tienen como objetivo describir transacciones desde la perspectiva de la billetera, pero lo hacen de manera confusa, con múltiples elementos de respuesta por transacción. Para empeorar las cosas, el resultado de estas llamadas no se pudo extender fácilmente para trabajar con la implementación de MultiChain de los activos emitidos por blockchain.

Entonces, esta versión introdujo un montón de nuevas API para consultar las transacciones de un nodo. La salida de estas llamadas conserva todos los campos útiles de los que reemplazan. Pero también agregan un montón de campos nuevos que describen cómo cada transacción afectó el saldo de la billetera local, qué aborda lo involucrado, cómo modificó los permisos y cualquier metadato contenido. Después de la introducción (en alfa 8) de la capacidad de aislar la actividad de cada dirección en una billetera, las llamadas vienen en dos versiones: un par que describe las transacciones desde la perspectiva de la billetera como un todo, y otro que las describe desde la perspectiva de una dirección de billetera individual.

Llamadas a la API: listwallettransactions, getwallettransaction, listaddresstransactions, getaddresstransaction.

Mirando hacia adelante a 2016

Estas son algunas de las principales mejoras introducidas en MultiChain durante los últimos meses. Por supuesto, también se han agregado muchas funciones más pequeñas, y se enumeran en su totalidad en el archivo README de la descarga. Y nuestra primera prioridad siempre será corregir errores tan pronto como aparezcan. Afortunadamente, los problemas que hemos visto nunca han sido de naturaleza arquitectónica seria: el feliz resultado de usar Bitcoin Core como punto de partida.

En términos de MultiChain en sí, después de un programa de lanzamiento vertiginoso, vamos a reducir la velocidad un poco. Esto se debe a que estamos trabajando en algo grande que llevará unos meses terminar. Describiré esta función en detalle en una futura publicación de blog, pero la idea básica es proporcionar un mecanismo de grabación y marca de tiempo inmutable simple y eficiente. para cualquier tipo de información, una especie de "cinta" digital. Aunque los metadatos de transacciones en MultiChain ya se pueden usar para este propósito (en fragmentos de hasta 8 MB), no son particularmente convenientes para el almacenamiento o la recuperación, y existen problemas de escalabilidad cuando se trata de grandes cantidades de datos.

¿Qué motiva esta función? Sus comentarios, por supuesto, nos han enseñado que el almacenamiento inmutable de propósito general es un caso de uso muy común para las cadenas de bloques. Y si alguna vez vemos una demanda significativa de "contratos inteligentes" (es decir, cálculo en blockchain) en MultiChain, este sistema puede servir como la capa de almacenamiento subyacente, con cálculos realizados por nodo, cuando sea necesario. Como yo explicado previamente, hay poco valor en requerir que cada nodo en una cadena de bloques privada realice cálculos en cadena en tiempo real.

¿Y después de eso? Bueno, sin duda habrá más mejoras en el producto gratuito, pero también vamos a empezar a trabajar en una versión premium de MultiChain. Por suerte, durante los últimos 8 meses hemos visto un montón de solicitudes de funciones comunes que comparten las siguientes características:

  • Son importantes para las implementaciones del mundo real, pero no para la experimentación inicial.
  • Se pueden implementar por nodo, sin afectar el consenso de la cadena.
  • Las empresas reales que realizan proyectos reales parecen más que felices de pagar por ellos.

Estas funciones están relacionadas con el rendimiento, la seguridad, el registro y la analítica, y las describiremos en detalle a la mayor brevedad. Por ahora, quiero enfatizar dos cosas clave sobre esta versión premium. Primero, será un reemplazo directo para la versión gratuita, por lo que cualquier código o aplicación que cree en MultiChain hoy seguirá funcionando sin modificaciones. En segundo lugar, todos los nodos de una cadena de bloques podrán decidir independientemente si actualizar o no, porque ninguna de las características premium afecta el consenso de blockchain. No se trata solo de que tengamos buen corazón, es crucial si queremos que MultiChain continúe creciendo orgánicamente. Una nueva entidad podrá conectarse e interactuar con una red MultiChain existente llena de nodos premium, sin gastar un centavo.

Si está interesado en hablar sobre la versión premium de MultiChain, envíe un correo electrónico premium@multicadena.com or usa este formulario. Estaremos encantados de conocer sus requisitos y ver cómo podemos cumplirlos.

Una cosa que he aprendido en los últimos dos años es que nadie se toma el software en serio hasta que pueda verlo y usarlo. Un mes antes del primer lanzamiento de MultiChain, le estaba contando a la gente sobre el producto, y noté que asintían cortésmente mientras obviamente pensaban "Oh, sálvame, aquí hay otro conversador rápido con un documento técnico y sin código de trabajo". Pero tan pronto como pone un producto a disposición, la respuesta cambia por completo. Entonces, si está leyendo sobre esta futura versión premium con una dosis de escepticismo, lo entiendo y no lo tomaré en su contra. Todo lo que puedo decir es que, hasta ahora, MultiChain tiene un historial muy sólido de cumplimiento de sus promesas y esperamos continuar.

También quiero aprovechar esta oportunidad para agradecer a nuestro equipo por su excelente trabajo. Aunque soy un codificador serio de profesión, en estos días dedico todo mi tiempo a escribir contenido, administrar productos y hablar con los clientes. Soy increíblemente afortunado de saber que puedo confiar en que nuestros desarrolladores crearán un código sólido y eficiente, día tras día, y no lo doy por sentado ni por un momento.

Y finalmente, gracias por leer y por ser uno de los primeros usuarios de la plataforma MultiChain.

Sello de tiempo:

Mas de Multicain