Sådan skaleres dit Blockchain-projekt med bloXroute

Af professor Aleksandar Kuzmanovic, medstifter og chefarkitekt

Hos bloXroute er vores mission at støtte og være åben for ethvert blockchain-projekt, der ønsker at skalere. Mens den første version af Blockchain Distribution Network (BDN) vil støtte Bitcoin, Bitcoin Cash og Ethereum, forklarer vi i dette blogindlæg på et højt niveau, hvordan ethvert blockchain-projekt kan integreres med bloXroute.

Tingene fremskyndes ved bloXroute - vi vil snart implementere version 1 af vores system, som bare er det første trin i at gøre bloXroute tilgængelig for alle blockchain-samfund. bloXroute er en neutral platform, der er åben for alle blockchains, og vi sigter mod løbende at tilføje support til nye blockchain-projekter. Vi er klar over, at ethvert projekt ønsker at skalere, og det er usandsynligt, at vi kan følge med kravet om en skalerbar blockchain. Vi har således designet vores integrations-API til at være så enkel som muligt, så ethvert samfund kan implementere vores gateway-logik og sikre, at BDN er beviseligt neutral.

Baggrund

Før vi dykker ned i detaljerne, lad os først gennemgå bloXroute-arkitekturen kort. bloXroute udsætter et Blockchain Distribution Network (BDN), der hjælper blockchain-knudepunkter med at udbrede transaktioner og blokerer hurtigere og mere effektivt og vigtigst af alt skalere, dvs. opnå tusinder af transaktioner pr. sekund (TPS). BDNs arkitektur, neutralitet og ydeevne blev diskuteret i tidligere Medium-indlæg.

BDN består af to typer noder: Relæer og gateways. Relæer er avancerede servere, der er forbundet til hinanden til at danne den globale bloXroute-rygrad, der hurtigt transmitterer blockchain-meddelelser (transaktioner og blokke) på en effektiv måde. A Gateway er et lille stykke open source-software, der distribueres side om side til en blockchain-knude, så begge kører på den samme maskine. I den ene ende taler en Gateway blockchain “sprog” med en blockchain knude, og på den anden ende taler den bloXroute “sprog” med et relæ. Det har adskillige funktioner; mest bemærkelsesværdigt komprimeres og krypteres blokke fra knudepunkterne til relæerne og dekrypterer og dekomprimerer blokke fra relæer til blockchain-knudepunkter.

Implementering af din egen gateway

bloXroute Gateways vil være åbne, og derfor kan du justere Gateway-koden, så den understøtter enhver blockchain-protokol. På et højt niveau involverer dette tre opgaver:

  1. Implementere blockchain-meddelelser (nemlig transaktioner og blokke), så en bloXroute Gateway kan forstå dem
  2. Implementere meddelelseskonvertering (dvs. skriv den kode, der tager native blockchain-meddelelser og konverterer dem til bloXroute-meddelelser og vice versa).
  3. Definer den specifikke protokol til din blockchain (dvs. skriv protokolhåndterere. F.eks. Er de almindelige håndterere for Bitcoin og Ethereum (a) håndtryk, (b) ping og pong, © inv, (d) transaktionsmeddelelse, (e) blok besked osv.)

Integrering af din gateway med bloXroute

Mens enhver kan implementere en bloXroute Gateway, kræver kørsel fremad koordinering med bloXroute-teamet. Koordineringen er nødvendig af følgende grunde.

Først skal vi vide, om de typer meddelelser, der kræves af din protokol, i øjeblikket understøttes inden for bloXroute. For eksempel understøttes generiske meddelelser, såsom transaktioner og blokke, allerede af bloXroute. Hvis du imidlertid har brug for at understøtte andre meddelelsestyper, er vi nødt til at implementere det inden bloXroute først. Dernæst udsendes alle meddelelser, der sendes af din blockchain-knude, i naturen (dvs. behov for at nå alle andre blockchain-noder)? I så fald er den udsendte primitive allerede implementeret i bloXroute. Men hvis du har brug for at støtte nogle andre kommunikationstyper, f.eks. Unicast eller multicast, er vi først nødt til at forstå og implementere denne del. Når vores BDN modnes og vi bliver bedre til at håndtere forskellige meddelelsestyper og kommunikationsmønstre, vil denne form for diskussion forekomme sjældent.

For det andet er vi af rent operationelle grunde nødt til at forstå de forventede statistikker på dit blockchain-netværk, så vi kan forberede os korrekt til installationen. Hvor længe forbliver transaktioner for eksempel gyldige i dit netværk? Hvor store er blokke? Hvad er den forventede TPS-sats? Hvor mange minearbejdere eller verifikatorer har du i øjeblikket? Hvor mange noder (ikke nødvendigvis minearbejdere eller verifikatorer) forventer du, at dit netværk skal have? Hvad er den geografiske fordeling af dine noder? Alle disse oplysninger hjælper os med at justere vores system, f.eks. Tilføje en BDN-knude (Relay) i en ny region for at bedst betjene projektet.

For det tredje tildeler vi dit projekt et unikt netværks-id, som vil blive implementeret på både gateways og relæer. Alle meddelelser genereret af dine Gateways vil omfatte dette netværks-id, som hjælper vores BDN med at genkende og rute meddelelser optimalt til andre gateways, der hører til dit netværk.

Endelig er det nødvendigt at teste funktionaliteten af ​​hele systemet, før man går over til produktionstilstand. Til dette formål konfigurerer vi et testmiljø, der understøtter dit tildelte netværks-id. Vi vil yderligere tilbyde meget kraftig debugging support, hvilket gør det muligt at forstå, hvor potentielle problemer bor, og hvordan man fjerner dem.

Alternativt kan du vælge at implementere din egen Gateway i din blockchain-kode og oprette forbindelse direkte til vores relænetværk. Hvis du vælger at få din knude indfødt til at tale bloXroute-protokollen, vil det være mere performant, da du springer over Gateway's "oversættelse" af blockchain-protokollen til bloXroute-protokollen. Gateway-protokollen vil sandsynligvis gennemgå ændringer oprindeligt, så sørg for, at din kode tager højde for det.

Hvad er den bedste måde at starte?

Før du starter et af ovenstående trin, er det nyttigt at kende den maksimale TPS-hastighed, som din enkelt blockchain-knude kan opretholde isoleret. Hvis du ikke ved det, skal du teste det, da dette er den øvre grænse for den ydelse, dit system kan nå. Dette kan testes i Bitcoin ved at se på, hvor mange transaktioner et netværk bestående af kun en miner skal behandle. bloXroute er et stort aktiv, der kan hjælpe med at øge ethvert projekt, men bloXroute kan ikke forbedre potentielle slutpunktflaskehalse, som din blockchain-knude muligvis oplever. Vi kan give vejledning baseret på vores erfaring med at rette sådanne flaskehalse.

Konklusion

I dette blogindlæg skitserede vi processen på højt niveau for at integrere dit blockchain-projekt med bloXroute for at opnå skala. På samme måde er bloXroute neutral for alle enheder i et enkelt blockchain-netværk, det er lige så neutralt over for forskellige blockchain-projekter. Det er aldrig for tidligt at spørge os om at integrere dit blockchain-projekt med bloXroute. Drop os en linje på support@bloxroute.com for mere information. Vi ser frem til at arbejde sammen med dig!

- - -

Vi leder altid efter gode mennesker!

Hvis du er lige så glade for at løse flaskehalsen til skalerbarhed for alle blockchains, kan du overveje at melde dig ind i vores team! Vi leder altid efter lidenskabelige partnere, der kan hjælpe os på denne vigtige rejse. Tjek vores tilgængelige stillinger for at arbejde sammen med os på vores Chicago kontorer.

Lær mere

  • Læs vores hvidbog
  • Nå ud på Twitter
  • Bliv medlem af vores Reddit-community
  • Deltag i vores Telegram community
  • Tilmeld dig vores opdateringer