Recente functies en roadmap 2016

Bronknooppunt: 1576913

Een update van de MultiChain fabrieksvloer

Als wijziging van blogposts over blockchains in het algemeen, wil ik graag een update geven over MultiChain, zowel wat betreft recente verbeteringen als onze roadmap voor 2016.

Allereerst wil ik de vele duizenden bedanken die hebben gedownload en gebouwd op MultiChain, gevraagde vraag en stuurde ons feedback. In de acht maanden sinds de eerste openbare release hebben onze statistieken een consistente organische groei in verkeer en downloads laten zien, en ik hoop dat dit betekent dat we de juiste plek bereiken. Zonder namen te noemen, weten we inderdaad dat MultiChain met succes is gebruikt voor langlopende blockchain-pilots bij enkele van de grootste banken, adviesbureaus, financiële technologie en IT-bedrijven ter wereld.

Een vraag die ons vaak wordt gesteld, is waarom MultiChain al zo lang in "alpha" staat. Het simpele antwoord is dat we zijn gebombardeerd met functieverzoeken, waarvan de meeste logisch voor ons waren, dus we zijn gefocust op het toevoegen van deze verbeteringen in plaats van het product naar bèta te brengen. Dat gezegd hebbende, zou u MultiChain als zeer stabiel moeten vinden voor alfasoftware, en we hebben het grondig getest onder extreme belasting.

Ik wil ook uitleggen hoe we MultiChain positioneren in de steeds groter wordende ruimte van blockchain-platforms. In de afgelopen zes maanden zijn er veel concurrerende producten aangekondigd, zijn er (quasi) consortia gevormd, hebben bedrijven tientallen miljoenen dollars opgehaald en hebben we af en toe echte softwarereleases gezien. Concurrentie is natuurlijk natuurlijk en onvermijdelijk en we kijken ernaar uit om te zien hoe deze andere platforms zich ontwikkelen. We zullen ongetwijfeld hun beste ideeën lenen en we gaan ervan uit dat ze het compliment zullen beantwoorden.

Dus waar past MultiChain bij al dat lawaai? Kortom, het is gericht op product en bruikbaarheid:

  • Stabiliteit. Door te forken van Bitcoin Core, de referentie-implementatie voor het bitcoin-netwerk, bouwt MultiChain voort op de jaren van zuurverdiende stabiliteit en veiligheid die voortkomen uit het beheren van miljarden dollars aan cryptocurrency-waarde op het open internet. Voor alle duidelijkheid: de codebase van Bitcoin Core heeft architecturale beperkingen en we zullen er uiteindelijk misschien van moeten afwijken. Voor de huidige gebruikersvereisten zouden de kosten hiervan echter aanzienlijk opwegen tegen de voordelen.
  • Gebruiksgemak. Veel MultiChain-gebruikers hebben ons verteld dat het veel gemakkelijker te gebruiken is dan concurrerende blockchain-platforms. Ik kan me niet eens herinneren hoe vaak ik iemand heb verteld dat ze binnen enkele minuten van nul naar hun eigen privé-blockchain kunnen gaan, en ze hebben me gewoon niet geloofd. Maar het is echt waar - volg gewoon de instructies op het Download en Ermee beginnen pagina's en overtuig uzelf. Geen afhankelijkheden, geen compilatie, geen gedoe met Docker. Slechts drie op zichzelf staande uitvoerbare bestanden en een README-bestand.
  • Voordelen. Toen MultiChain voor het eerst werd uitgebracht, had het veel minder functies dan nu. Geen controle per adres van activa, geen atomaire uitwisselingstransacties, geen gemakkelijke transactiemetadata. Dus hoe beslissen we wat we moeten toevoegen? Simpel - we luisteren naar onze gebruikers. Soms weten ze precies wat ze willen, zoals een vervolguitgifte van activa, en daar doen we graag mee. Andere keren weten ze wat ze willen bereiken, maar weten ze niet hoe ze dat als een kenmerk moeten uitdrukken, en het is onze taak om het uit te werken. Hoe dan ook, de routekaart van MultiChain wordt meedogenloos aangedreven door gebruikersfeedback, en dus zal het doorgaan.
  • Bitcoin-compatibiliteit. Als je een blockchain-oplossing bouwt, zul je merken dat het knooppunt slechts een klein deel van het plaatje is. Mogelijk hebt u mobiele of webportefeuilles, sleutelbeheeroplossingen en een bibliotheek in een onduidelijke taal nodig voor het decoderen, ondertekenen en coderen van transacties. MultiChain is ontworpen om dit alles zo eenvoudig en snel mogelijk te maken, door maximale compatibiliteit met bitcoin te behouden, waarvoor een enorme hoeveelheid informatie, tools en code gratis beschikbaar is. Om het punt te bewijzen, kan MultiChain zelfs worden geconfigureerd als een knooppunt op het bitcoin-netwerk.

In wezen streven we ernaar onze gebruikers te verrassen en zijn we er vast van overtuigd dat dit de zekerste weg naar commercieel succes is. In dat opzicht wil ik enkele van de nieuwe functies beschrijven die de afgelopen maanden zijn toegevoegd.

Vervolguitgifte van activa (alpha 17)

Dit verzoek bestaat al een tijdje en is de meest upgestemde vraag op de Developer Q&A. Dus waarom duurde het zo lang? Je kunt het ons kwalijk nemen dat we puristen zijn. Zie je, in termen van veiligheid is er geen verschil tussen (a) het uitgeven van een biljoen eenheden van een activum de eerste keer en het houden van de meeste uit omloop, en (b) het toestaan ​​van vervolguitgiften van meer eenheden van hetzelfde Bedrijfsmiddel.

Maar het blijkt dat vanuit het perspectief van onze gebruikers daar is nogal een verschil tussen de twee gevallen, omdat het niet zo eenvoudig is om eenheden in actieve omloop te onderscheiden van die aan de zijlijn. We zijn dan ook verheugd om aan te kondigen dat u in de versie die vandaag wordt vrijgegeven, wanneer u een activum uitgeeft, kunt beslissen of dat activum open of gesloten is. Als het open is, kan de oorspronkelijke uitgevende partij zo vaak als ze willen meer eenheden maken.

Aan de andere kant biedt MultiChain nu ook een canoniek 'brandadres' voor elke ketting. Dit adres staat vol met X'en en is dus duidelijk gemaakt zonder een bijbehorende privésleutel (dit zou een eindeloze hoeveelheid tijd kosten). Eventuele asset units die naar dit adres worden gestuurd, kunnen dus nooit worden uitgegeven en worden op transparante wijze vernietigd. Merk op dat voor uw veiligheid, het brandadres expliciet toestemming moet krijgen voordat het kan worden gebruikt.

API-aanroepen: issue, issuefrom, issuemore, issuemorefrom, listassets, getinfo reacties burnaddress veld.

MultiChain-verkenner

Samen met alpha 17 brengen we de eerste bèta van de gratis en open source uit MultiChain-verkenner. Dit biedt een intuïtieve webgebaseerde weergave van de wereldwijde staat van een MultiChain-blockchain, vergelijkbaar met de blockchain-ontdekkingsreizigers die bitcoin-gebruikers kennen en waarderen. Hiermee kunt u snel en comfortabel transacties, blokkeringen, activa en adressen bekijken, evenals de verbindingen daartussen, allemaal vanuit het comfort van uw favoriete webbrowser.

De MultiChain Explorer werd gevorkt van de populaire Abe project, geschreven in Python en aangedreven door SQLite. Het maakt verbinding met de API van een lokaal MultiChain-knooppunt en bevat een op zichzelf staande webserver, zodat er geen extra afhankelijkheden zijn. We hopen dat je deze tool leuk vindt en verwelkomen je feedback om ons te helpen het nog beter te maken.

Interactieve commandomodus (alpha 16)

Als afsplitsing van Bitcoin Core heeft MultiChain het bitcoin-cli tool, waarnaar we op de juiste manier zijn hernoemd multichain-cli natuurlijk. Deze tool biedt een handige opdrachtregelinterface voor de JSON-RPC API van MultiChain, waardoor API-oproepen vanaf de systeemopdrachtregel kunnen worden verzonden, waarbij hun antwoorden in de terminal worden weergegeven. Achter de schermen leest het de API-inloggegevens uit het configuratiebestand van de juiste keten, bouwt het het JSON-RPC-verzoek op en decodeert het zijn antwoord.

Als gebruikers van MultiChain zelf, was dat een frustratie multichain-cli moest voor elk API-verzoek afzonderlijk worden uitgevoerd. Afgezien van de overhead van het systeem, voorkomt dit het soort vloeiende interactie dat SQL-databases bieden. En dus hebben we het opgelost. Vanaf alpha 16, als je rent multichain-cli [chain-name] zonder commando wordt u in een interactieve modus gebracht waarin u herhaaldelijk commando's kunt typen en hun reactie kunt zien. De interactieve modus ondersteunt standaard bewerkingsfuncties zoals geschiedenis (pijlen omhoog en omlaag), naar het begin (Ctrl A) of einde (Ctrl E) van de regel springen en naar het volgende (Ctrl →) en vorige (Ctrl ←) woord gaan .

Snellere handtekeningverificatie (alpha 15)

Als het gaat om prestaties in bitcoin of MultiChain, is de meest cruciale bottleneck de verificatie van de ECDSA-handtekeningen waarop het beveiligingsmodel van de blockchain is gebouwd. De originele Bitcoin Core-software vertrouwde op een open source-bibliotheek genaamd OpenSSL voor het genereren en verifiëren van handtekeningen, wat het werk deed, hoewel het enkele problemen had met kneedbaarheid, wat betekent dat meer dan één handtekening geldig was voor een bepaalde privésleutel en payload.

Recente versies van Bitcoin Core introduceerden een nieuwe bibliotheek voor ECDSA-ondertekening en -verificatie, genaamd libsecp256k1. Deze bibliotheek is helemaal opnieuw geschreven door blockchain-ontwikkelaars van wereldklasse, verwijdert de afhankelijkheid van OpenSSL, lost problemen op met maakbaarheid en presteert verschillende keren sneller. Een van de voordelen van het afgeleid zijn van Bitcoin Core is dat MultiChain kan profiteren van dit soort verbeteringen, die uitgebreid worden getoetst en getest voordat ze in het bitcoin-netwerk worden geïmplementeerd. En dus doet alpha 15 precies dat met libsecp256k1.

Activeer toestemming (alpha 14)

Bij het ontwikkelen van de eerste versie van MultiChain stonden we voor een dilemma in termen van toestemming. Enerzijds zouden we geen probleem hebben om een ​​extreem krachtig toestemmingsmodel te bedenken en te implementeren, met meerdere beheerderslagen, machtigingen per activum en gewogen stemregelingen. Aan de andere kant wisten we dat dit vanuit gebruikersperspectief de complexiteit zou vergroten en niet noodzakelijkerwijs zou aansluiten bij de gebruikersbehoeften. Daarom hebben we besloten om te beginnen met een eenvoudig model, dat slechts zes toestemmingssoorten bevat (verbinden, verzenden, ontvangen, uitgeven, mijnen, admin) en een aantal eenvoudige, op consensus gebaseerde stemmen voor de belangrijkste wijzigingen van privileges. We verwachtten dat dit model in de loop van de tijd complexer zou worden, maar gedreven door gebruikersvereisten in plaats van onze eigen theorieën.

Het blijkt dat in dit geval simpel eigenlijk best goed is. Maar een serieuze partner waarmee we samenwerken had iets meer nodig. Zie je, een MultiChain-adres met beheerdersrechten heeft de macht om alle soorten rechten op een blockchain te beheren, in sommige gevallen onder voorbehoud van consensus met andere beheerders. Maar deze partner wilde een adres de macht geven om de verbinding van anderen, het verzenden en ontvangen van machtigingen alleen te beheren met het oog op onboarding, en had geen invloed op meer cruciale processen zoals mijnbouw en uitgifte van activa. Daarom hebben we een nieuwe 'activeer'-toestemming toegevoegd die precies dit doet. Dit was ook het eerste voorbeeld van een partner die betaalde om een ​​functie die ze nodig hadden in het product te implementeren, een win-win als er ooit een was.

Wallet-transactie-API's (alfa 13)

Als afsplitsing van Bitcoin Core erfde MultiChain een deel van het slechte samen met het goede. Een van de zwakke plekken in Bitcoin Core is de API voor het ophalen van informatie over de transacties in de portemonnee van het lokale knooppunt. Het biedt twee keuzes: (a) het getrawtransaction call die de binaire inhoud van transacties decodeert, maar niet uitlegt hoe ze de lokale portemonnee hebben beïnvloed, en (b) de gettransaction en listtransactions oproepen die transacties willen beschrijven vanuit het perspectief van de portemonnee, maar dit op een verwarrende manier doen, met meerdere antwoordelementen per transactie. Om de zaken nog erger te maken, kon de output van deze oproepen niet gemakkelijk worden uitgebreid om te werken met MultiChain's implementatie van blockchain-uitgegeven activa.

Dus deze release introduceerde een aantal nieuwe API's voor het opvragen van transacties van een knooppunt. De uitvoer van deze aanroepen behoudt alle nuttige velden van de velden die ze vervangen. Maar ze voegen ook een heleboel nieuwe velden toe die beschrijven hoe elke transactie het saldo van de lokale portemonnee beïnvloedde, welk adres het betrof, hoe het de machtigingen wijzigde en alle metadata die erin zat. Na de introductie (in alfa 8) van de mogelijkheid om de activiteit van elk adres in een portefeuille te isoleren, zijn de oproepen in twee versies beschikbaar: een paar dat transacties beschrijft vanuit het perspectief van de portefeuille als geheel, en een ander dat ze beschrijft vanuit het perspectief van de portefeuille als geheel. het perspectief van een individueel portefeuilleadres.

API-aanroepen: listwallettransactions, getwallettransaction, listaddresstransactions, getaddresstransaction.

Vooruitkijkend naar 2016

Dat zijn enkele van de belangrijkste verbeteringen die de afgelopen maanden in MultiChain zijn geïntroduceerd. Natuurlijk zijn er ook veel kleinere functies toegevoegd, en ze worden volledig vermeld in het README-bestand van de download. En onze eerste prioriteit zal altijd zijn repareer bugs zodra ze verschijnen. Gelukkig zijn de problemen die we hebben gezien nooit van serieuze architectonische aard geweest - het gelukkige resultaat van het gebruik van Bitcoin Core als uitgangspunt.

In termen van MultiChain zelf gaan we na een halsstarrig releaseschema een beetje vertragen. Dit komt omdat we werken aan iets groots dat een paar maanden nodig heeft om af te ronden. Ik zal deze functie in een toekomstige blogpost in detail beschrijven, maar het basisidee is om een ​​eenvoudig en efficiënt onveranderlijk opname- en tijdstempelmechanisme te bieden voor elk type informatie, een soort digitale 'tape'. Hoewel transactiemetadata in MultiChain al voor dit doel kunnen worden gebruikt (in brokken tot 8 MB), is het niet bijzonder handig voor opslag of ophalen, en zijn er problemen met de schaalbaarheid bij het omgaan met grote hoeveelheden gegevens.

Wat motiveert deze functie? Uw feedback heeft ons natuurlijk geleerd dat onveranderlijke opslag voor algemeen gebruik een veel voorkomende use case is voor blockchains. En als we ooit een significante vraag zien naar “slimme contracten” (dwz on-blockchain-berekening) in MultiChain, kan dit systeem dienen als de onderliggende opslaglaag, met berekeningen die indien nodig per knooppunt worden uitgevoerd. Zoals ik heb eerder uitgelegd, heeft het weinig zin om van elk knooppunt in een privé-blockchain te eisen dat deze in realtime on-chain berekeningen uitvoert.

En daarna? Er komen ongetwijfeld meer verbeteringen aan het gratis product, maar we gaan ook werken aan een premium-versie van MultiChain. Het toeval wil dat we de afgelopen 8 maanden een aantal veelvoorkomende functieverzoeken hebben gezien die de volgende kenmerken gemeen hebben:

  • Ze zijn belangrijk voor implementaties in de echte wereld, maar niet voor eerste experimenten.
  • Ze kunnen per knooppunt worden geïmplementeerd, zonder de consensus van een keten te beïnvloeden.
  • Echte bedrijven die echte projecten uitvoeren, lijken er maar al te graag voor te betalen.

Deze functies hebben betrekking op prestaties, beveiliging, logboekregistratie en analyse, en we zullen ze uitvoerig in detail beschrijven. Voor nu wil ik twee belangrijke dingen over deze premiumversie benadrukken. Ten eerste zal het een drop-in vervanging voor de gratis versie, dus alle code of applicaties die u vandaag op MultiChain bouwt, zullen ongewijzigd blijven werken. Ten tweede zal elk knooppunt in een blockchain dat kunnen onafhankelijk beslissen of u wilt upgraden of niet, omdat geen van de premiumfuncties de consensus van de blockchain beïnvloedt. We zijn niet alleen goedhartig, het is ook cruciaal als we willen dat MultiChain organisch blijft groeien. Een nieuwe entiteit kan verbinding maken en communiceren met een bestaand MultiChain-netwerk vol premium knooppunten, zonder een cent uit te geven.

Als u geïnteresseerd bent in het bespreken van de premiumversie van MultiChain, stuur dan een e-mail premium@multichain.com or gebruik dit formulier. We horen graag uw wensen en kijken hoe we hieraan kunnen voldoen.

Een ding dat ik de afgelopen jaren heb geleerd, is dat niemand software serieus neemt totdat ze het echt kunnen zien en gebruiken. Een maand voor de eerste release van MultiChain vertelde ik mensen over het product, en ik merkte dat ze beleefd knikten terwijl ze duidelijk dachten: "Oh, red mij, hier is nog een snelle prater met een witboek en geen werkende code." Maar zodra je een product beschikbaar stelt, verandert de respons volledig. Dus als u met een dosis scepsis over deze toekomstige premiumversie leest, begrijp ik het en zal ik het u niet kwalijk nemen. Alles wat ik kan zeggen is dat MultiChain tot dusver een zeer solide staat van dienst heeft in het nakomen van zijn beloften, en we kijken ernaar uit om door te gaan.

Ik wil ook van deze gelegenheid gebruik maken om ons team te bedanken voor hun uitstekende werk. Hoewel ik van beroep een serieuze coder ben, besteed ik tegenwoordig al mijn tijd aan het schrijven van inhoud, het beheren van producten en het praten met klanten. Ik heb het ongelofelijke geluk te weten dat ik erop kan vertrouwen dat onze ontwikkelaars elke dag solide en efficiënte code maken, en ik neem het geen moment als vanzelfsprekend aan.

En tot slot, bedankt voor het lezen en voor het feit dat je een vroege gebruiker bent van het MultiChain-platform.

Tijdstempel:

Meer van Multichain