Caracteristici recente și Foaie de parcurs 2016

Nodul sursă: 1576913

O actualizare de la nivelul fabricii MultiChain

Ca o schimbare față de postările de blog despre blockchains în general, aș dori să ofer o actualizare despre multicatenari, atât în ​​ceea ce privește îmbunătățirile recente, cât și foaia noastră de parcurs pentru 2016.

În primul rând, aș dori să mulțumesc celor multe mii dintre voi care ați descărcat și construit pe MultiChain, a pus întrebări și ne-a trimis feedback. În cele opt luni de la prima lansare publică, statisticile noastre au arătat o creștere organică consecventă a traficului și a descărcărilor și sper că acest lucru înseamnă că suntem în fața locului. Într-adevăr, fără a numi nume, știm că MultiChain a fost folosit cu succes pentru piloți blockchain de lungă durată în unele dintre cele mai mari bănci, firme de consultanță, companii de tehnologie financiară și IT de pe planetă.

O întrebare care ni se pune adesea este de ce MultiChain a fost în „alfa” atât de mult timp. Răspunsul simplu este că am fost bombardați cu solicitări de funcții, dintre care majoritatea aveau sens pentru noi, așa că ne-am concentrat mai degrabă pe adăugarea acestor îmbunătățiri decât să aducem produsul la versiunea beta. Acestea fiind spuse, ar trebui să găsiți că MultiChain este foarte stabil pentru software-ul alfa și l-am testat temeinic sub sarcini extreme.

De asemenea, vreau să explic modul în care poziționăm MultiChain în spațiul de extindere al platformelor blockchain. În ultimele șase luni au fost anunțate multe produse concurente, s-au format (cvasi)consorții, companiile au strâns zeci de milioane de dolari și doar ocazional am văzut câteva lansări de software reale. Desigur, concurența este naturală și inevitabilă și așteptăm cu nerăbdare să urmărim dezvoltarea acestor alte platforme. Fără îndoială că le vom împrumuta cele mai bune idei și presupunem că le vor întoarce complimentul.

Deci, unde se potrivește MultiChain cu tot acest zgomot? Pe scurt, este concentrat pe produs și caracter practic:

  • Stabilitate. Prin bifurcare de la Bitcoin Core, implementarea de referință pentru rețeaua bitcoin, MultiChain se bazează pe anii de stabilitate și securitate câștigați cu greu, care provin din administrarea de miliarde de dolari în valoare de criptomonedă pe internetul deschis. Pentru a fi clar, baza de cod Bitcoin Core are limitări arhitecturale și, în cele din urmă, ar putea fi nevoiți să ne îndepărtăm de ea. Cu toate acestea, pentru cerințele actuale ale utilizatorilor, costul de a face acest lucru ar depăși semnificativ beneficiile.
  • Usor de folosit. Mulți utilizatori MultiChain ne-au spus că este mult mai ușor de utilizat decât platformele blockchain concurente. Nici nu-mi amintesc de câte ori i-am spus cuiva că poate trece de la zero la propriul blockchain privat în câteva minute și pur și simplu nu m-a crezut. Dar este cu adevărat adevărat – trebuie doar să urmați instrucțiunile de pe Descarca și Noțiuni de bază pagini și vedeți singur. Fără dependențe, fără compilare, fără să te încurci cu Docker. Doar trei executabile autonome și un fișier README.
  • DESCRIERE. Când MultiChain a fost lansat pentru prima dată, avea mult mai puține funcții decât în ​​prezent. Fără control pe adresă al activelor, fără tranzacții de schimb atomic, fără metadate de tranzacție ușoare. Deci, cum decidem ce să adăugăm? Simplu – ne ascultăm utilizatorii. Uneori, ei știu exact ce își doresc, cum ar fi emiterea de active ulterioare, și suntem bucuroși să le obligăm. Alteori, ei știu ce vor să obțină, dar nu știu cum să exprime asta ca o caracteristică și este treaba noastră să o rezolvăm. Oricum ar fi, foaia de parcurs MultiChain este condusă neîncetat de feedback-ul utilizatorilor și așa va continua.
  • Compatibilitate Bitcoin. Dacă construiți o soluție blockchain, veți descoperi că nodul este doar o mică parte a imaginii. Este posibil să aveți nevoie de portofele mobile sau web, soluții de gestionare a cheilor și o bibliotecă într-un limbaj obscur pentru decodarea, semnarea și codificarea tranzacțiilor. MultiChain este conceput pentru a face toate acestea cât mai simple și rapide, prin menținerea compatibilității maxime cu bitcoin, pentru care o cantitate imensă de informații, instrumente și cod sunt disponibile gratuit. Pentru a demonstra ideea, MultiChain poate chiar fi configurat ca nod în rețeaua bitcoin.

Practic, ne propunem să ne încântăm utilizatorii și credem cu fermitate că aceasta este calea cea mai sigură către succesul comercial. În această notă, aș dori să descriu câteva dintre noile funcții adăugate în ultimele luni.

Emiterea de active ulterioare (alfa 17)

Această solicitare există de ceva vreme și este cea mai votată întrebare la Întrebările și răspunsurile pentru dezvoltatori. Deci de ce a durat atât de mult? Ne poți învinovăți că suntem puriști. Vedeți, în ceea ce privește securitatea, nu există nicio diferență între (a) emiterea a un miliard de unități dintr-un activ prima dată și menținerea celor mai multe dintre ele în afara circulației și (b) permiterea emiterii ulterioare a mai multor unități ale aceluiași activ activ.

Dar se pare că din perspectiva utilizatorilor noștri, acolo is o diferență destul de mare între cele două cazuri, pentru că nu este atât de ușor să diferențiezi unitățile aflate în circulație activă de cele care stau pe margine. Prin urmare, suntem încântați să anunțăm că, în versiunea lansată astăzi, atunci când emiteți un activ, puteți decide dacă acel activ este deschis sau închis. Dacă este deschis, partea emitentă inițială poate crea mai multe unități de câte ori dorește.

Pe de altă parte, MultiChain oferă acum o „adresă de ardere” canonică pentru fiecare lanț. Această adresă este plină de X și, în mod evident, a fost creată fără o cheie privată corespunzătoare (a face acest lucru ar dura o perioadă interminabilă de timp). Prin urmare, orice unități de active trimise la această adresă nu pot fi niciodată cheltuite și sunt distruse într-un mod transparent. Rețineți că, pentru siguranța dvs., adresa de inscripționare trebuie să primească în mod explicit permisiuni de primire înainte de a putea fi utilizată.

Apeluri API: issue, issuefrom, issuemore, issuemorefrom, listassets, getinfo răspunsuri burnaddress camp.

MultiChain Explorer

Împreună cu alpha 17, lansăm prima versiune beta a sursei gratuite și deschise MultiChain Explorer. Aceasta oferă o vedere intuitivă bazată pe web a stării globale a unui blockchain MultiChain, similar cu exploratorii blockchain pe care utilizatorii de bitcoin îi cunosc și îi iubesc. Vă permite să vizualizați rapid și confortabil tranzacțiile, blocurile, activele și adresele, precum și conexiunile dintre acestea, totul din confortul browserului dvs. web preferat.

MultiChain Explorer a fost bifurcat de la popular Abe proiect, scris în Piton și alimentat de SQLite. Se conectează la API-ul unui nod local MultiChain și include un server web autonom, astfel încât să nu existe dependențe suplimentare. Sperăm că vă place acest instrument și primim feedback-ul dvs. pentru a ne ajuta să-l îmbunătățim și mai mult.

Modul de comandă interactiv (alpha 16)

Ca o furcă a Bitcoin Core, MultiChain a moștenit bitcoin-cli instrument, pe care l-am redenumit în mod corespunzător multichain-cli desigur. Acest instrument oferă o interfață convenabilă de linie de comandă pentru API-ul JSON-RPC al MultiChain, permițând trimiterea apelurilor API din linia de comandă a sistemului, cu răspunsurile lor afișate în terminal. În culise, citește acreditările API din fișierul de configurare al lanțului corespunzător, construiește cererea JSON-RPC și decodifică răspunsul acesteia.

În calitate de utilizatori ai MultiChain, o frustrare pe care am avut-o a fost aceea multichain-cli trebuia rulat separat pentru fiecare solicitare API. În afară de supraîncărcarea sistemului, acest lucru previne tipul de interacțiune fluidă pe care o oferă bazele de date SQL. Și așa am remediat. Începând cu alfa 16, dacă alergi multichain-cli [chain-name] fără comandă, sunteți introdus într-un mod interactiv care vă permite să introduceți comenzi în mod repetat și să vedeți răspunsul acestora. Modul interactiv acceptă funcții standard de editare, cum ar fi istoricul (săgeți în sus și în jos), săritul la începutul (Ctrl A) sau sfârșitul (Ctrl E) al liniei și trecerea la cuvântul următor (Ctrl →) și anterior (Ctrl ←) .

Verificare mai rapidă a semnăturii (alpha 15)

Când vine vorba de performanță în bitcoin sau MultiChain, cel mai important blocaj este verificarea Semnături ECDSA pe care este construit modelul de securitate al blockchain-ului. Software-ul original Bitcoin Core se baza pe o bibliotecă open source numită OpenSSL pentru generarea și verificarea semnăturilor, care a făcut treaba, deși a avut unele probleme cu maleabilitate, ceea ce înseamnă că mai multe semnături erau valide pentru o anumită cheie privată și sarcină utilă.

Versiunile recente ale Bitcoin Core au introdus o nouă bibliotecă pentru semnarea și verificarea ECDSA, numită libsecp256k1. Această bibliotecă, scrisă de la zero de dezvoltatori blockchain de clasă mondială, elimină dependența de OpenSSL, rezolvă problemele de maleabilitate și funcționează de câteva ori mai rapid. Unul dintre avantajele de a fi derivat din Bitcoin Core este că MultiChain poate profita de acest tip de îmbunătățiri, care sunt revizuite și testate de către colegi înainte de a fi implementate în rețeaua bitcoin. Și deci alpha 15 face exact asta cu libsecp256k1.

Activați permisiunea (alpha 14)

La dezvoltarea primei versiuni de MultiChain, ne-am confruntat cu o dilemă în ceea ce privește permisiunea. Pe de o parte, nu am avea nicio problemă să inventăm și să implementăm un model de permisiuni extrem de puternic, cu mai multe straturi de administratori, permisiuni per activ și scheme de vot ponderate. Pe de altă parte, știam că acestea ar adăuga complexitate din perspectiva utilizatorului și nu se vor potrivi neapărat cu nevoile utilizatorului. Așa că am decis să începem cu un model simplu, care să conțină doar șase tipuri de permisiuni (conectare, trimitere, primire, emitere, a mea, admin) și un vot simplu bazat pe consens pentru cele mai importante modificări de privilegii. Ne așteptam ca acest model să devină mai complex în timp, dar determinat de cerințele utilizatorilor, mai degrabă decât de propriile noastre teorii.

Se pare că, în acest caz, simplu este de fapt destul de bun. Dar un partener serios cu care lucrăm avea nevoie de ceva mai mult. Vedeți, o adresă MultiChain cu privilegii de administrator are puterea de a controla toate tipurile de permisiuni pe un blockchain, supusă, în unele cazuri, unui consens cu alți administratori. Dar acest partener a vrut să ofere unei adrese puterea de a controla conectarea, trimiterea și primirea permisiunilor altora doar, în scopul integrării, și să nu aibă nicio influență asupra proceselor mai importante, cum ar fi extragerea și emiterea de active. Așa că am adăugat o nouă permisiune de „activare” care face exact acest lucru. Acesta a fost și primul exemplu de plată a unui partener pentru a implementa o funcție de care avea nevoie în produs, un câștig-câștig dacă a existat vreodată.

API-uri pentru tranzacții cu portofel (alpha 13)

Ca o bifurcătură a Bitcoin Core, MultiChain a moștenit o parte din rele, împreună cu cele bune. Unul dintre punctele slabe din Bitcoin Core este API-ul pentru preluarea informațiilor despre tranzacțiile din portofelul nodului local. Acesta oferă două opțiuni: (a) cel getrawtransaction apel care decodifică conținutul binar al tranzacțiilor, dar nu explică modul în care acestea au afectat portofelul local și (b) gettransaction și listtransactions apeluri care urmăresc să descrie tranzacțiile din perspectiva portofelului, dar fac acest lucru într-un mod confuz, cu mai multe elemente de răspuns per tranzacție. Înrăutățind lucrurile, rezultatul acestor apeluri nu ar putea fi ușor extins pentru a funcționa cu implementarea MultiChain a activelor emise de blockchain.

Deci, această versiune a introdus o mulțime de noi API-uri pentru interogarea tranzacțiilor unui nod. Ieșirea acestor apeluri reține toate câmpurile utile din cele pe care le înlocuiesc. Dar ei adaugă, de asemenea, o grămadă de câmpuri noi care descriu modul în care fiecare tranzacție a afectat soldul portofelului local, care se adresează, cum a modificat permisiunile și orice metadate conținute. În urma introducerii (în alfa 8) a capacității de a izola activitatea fiecărei adrese dintr-un portofel, apelurile vin în două versiuni – o pereche care descrie tranzacțiile din perspectiva portofelului în ansamblu și alta care le descrie din perspectiva unei adrese individuale de portofel.

Apeluri API: listwallettransactions, getwallettransaction, listaddresstransactions, getaddresstransaction.

Așteptând cu nerăbdare 2016

Acestea sunt câteva dintre îmbunătățirile majore introduse în MultiChain în ultimele luni. Desigur, au fost adăugate și multe caracteristici mai mici și sunt listate complet în fișierul README al descărcarii. Și prima noastră prioritate va fi întotdeauna să remediați erorile imediat ce apar. Din fericire, problemele pe care le-am văzut nu au fost niciodată de natură arhitecturală serioasă – rezultatul fericit al utilizării Bitcoin Core ca punct de plecare.

În ceea ce privește MultiChain în sine, după un program de lansare vertiginos, vom încetini puțin. Acest lucru se datorează faptului că lucrăm la ceva mare care va dura câteva luni până la finalizare. Voi descrie această caracteristică în detaliu într-o postare viitoare pe blog, dar ideea de bază este de a oferi un mecanism de înregistrare și marcare temporală imuabil simplu și eficient pentru orice tip de informatie, un fel de „bandă” digitală. Deși metadatele tranzacțiilor din MultiChain pot fi deja folosite în acest scop (în bucăți de până la 8 MB), nu sunt deosebit de convenabile pentru stocare sau recuperare și există probleme de scalabilitate atunci când se ocupă cu bucăți mari de date.

Ce motivează această caracteristică? Feedback-ul dumneavoastră, desigur, care ne-a învățat că stocarea imuabilă de uz general este un caz de utilizare foarte comun pentru blockchain-uri. Și dacă vedem vreodată o cerere semnificativă pentru „contracte inteligente” (adică calcul pe blockchain) în MultiChain, acest sistem poate servi drept strat de stocare de bază, cu calcule efectuate pe nod, atunci când este necesar. Asa cum am facut eu explicat anterior, există puțină valoare în a solicita fiecărui nod dintr-un blockchain privat să efectueze calcule în lanț în timp real.

Si dupa aceea? Ei bine, fără îndoială, vor fi mai multe îmbunătățiri la produsul gratuit, dar vom începe și să lucrăm la un versiune premium a MultiChain. Din fericire, în ultimele 8 luni am văzut o mulțime de solicitări de caracteristici comune care au următoarele caracteristici:

  • Sunt importante pentru implementările în lumea reală, dar nu pentru experimentarea inițială.
  • Ele pot fi implementate pe bază de nod, fără a afecta consensul unui lanț.
  • Companiile reale care fac proiecte reale par mai mult decât fericite să plătească pentru ele.

Aceste caracteristici sunt legate de performanță, securitate, logare și analiză și le vom descrie în detaliu în timp. Deocamdată, vreau să subliniez două lucruri cheie despre această versiune premium. În primul rând, va fi un înlocuire drop-in pentru versiunea gratuită, astfel încât orice cod sau aplicații pe care le construiți pe MultiChain astăzi va continua să funcționeze nemodificat. În al doilea rând, fiecare nod dintr-un blockchain va putea decide independent dacă să faceți upgrade sau nu, deoarece niciuna dintre caracteristicile premium nu afectează consensul blockchain-ului. Nu este vorba doar de a fi buni la inimă – este esențial dacă dorim ca MultiChain să continue să crească organic. O nouă entitate se va putea conecta și interacționa cu o rețea MultiChain existentă plină de noduri premium, fără a cheltui un ban.

Dacă sunteți interesat să discutați despre versiunea premium a MultiChain, vă rugăm să trimiteți un e-mail premium@multichain.com or utilizați acest formular. Vom fi bucuroși să aflăm despre cerințele dumneavoastră și să vedem cum le putem îndeplini.

Un lucru pe care l-am învățat în ultimii câțiva ani este că nimeni nu ia în serios software-ul până când nu îl poate vedea și folosi. Cu o lună înainte de prima lansare a MultiChain, le spuneam oamenilor despre produs și i-am observat dând din cap politicos în timp ce se gândeau în mod evident „Oh, salvează-mă, iată un alt vorbitor rapid cu o hârtie albă și fără cod de lucru.” Dar de îndată ce faci un produs disponibil, răspunsul se schimbă complet. Deci, dacă citiți despre această viitoare versiune premium cu o doză de scepticism, înțeleg și nu voi ține împotriva voastră. Tot ce pot spune este că, până acum, MultiChain are un istoric foarte solid de a-și îndeplini promisiunile și așteptăm cu nerăbdare să continuăm.

De asemenea, vreau să profit de această ocazie pentru a mulțumi echipei noastre pentru munca lor extraordinară. Deși sunt un programator serios de profesie, în aceste zile îmi petrec tot timpul scriind conținut, gestionând produse și discutând cu clienții. Sunt incredibil de norocos să știu că pot avea încredere în dezvoltatorii noștri pentru a crea cod solid și eficient, zi de zi, și nu o iau de la sine înțeles nicio clipă.

Și, în cele din urmă, vă mulțumesc pentru că ați citit și pentru că ați fost un utilizator timpuriu al platformei MultiChain.

Timestamp-ul:

Mai mult de la multicatenari