Holochain Dev puls 20 - Povjerenje i provjera podataka

Kriptografija i snimanje složenosti

Holochain Dev puls 20

Sažetak

Ovaj je tjedan osvježavajuća prilika za obavljanje puno „nevidljivih“ poslova - istraživanje arhitekture, preslikavanje i razumijevanje složenosti koje smo otkrili, i tako dalje. Također smo se ugodno slagali s novim postupkom izdanja i rado smo pozdravili našeg novog DevOps inženjera.

Naglasci

  1. Utvrđivanje složenosti i mapiranje susjednih mogućnosti
  2. Značajka API-ja: Potvrda potpisa i podrška na niskoj razini KeyStore-a
  3. Holo Enable: Live Instance boot
  4. Iskustvo programera: Ispitivanje DNK jedinice Rust HDK-om
  5. Kršenje promjene / značajka API-ja: Provjera CRUD-a
  6. Izazovi: sinkroniziranje procesa izdanja i podrška za DevOps
Holochain Dev puls od 11. do 18. ožujka 2019. godine

Detalji

1. Utvrđivanje složenosti i mapiranje susjednih mogućnosti

Princip KISS - bez obzira za što kažete da se oni zalažu - za programere je aksiomatičan. Jednostavni koncepti i jednostavni kod olakšavaju upravljanje vašom bazom podataka. Međutim, svaki projekt ima mjeru nenadoknadive složenosti, a ispada da izgradnja novog distribuiranog skupa za Internet ima dosta toga.

Preuzimamo dizajnerske znakove iz živih sustava u kojima mnogi subjekti koriste jednostavna pravila kako bi upravljali svojim interakcijama. Ta osnovna pravila rezultiraju iznenađujućom složenošću i često čak proizlaze iz složenijih sustava niže razine. Ova složenost zapravo je prednost živim sustavima - to je ono što im omogućuje da se prilagode prijetnjama, napredovaju i rađaju ono prekrasno bogatstvo koje vidimo svuda oko nas.

Veliki dio složenosti Holochainovog dizajnerskog prostora otkriva se tek kako krenemo - dok istražujemo stvari koje se pojavljuju izravno, oni se razvijaju u mreže pod-problema. Može biti teško zadržati prikaz svih isprepletenih komada.

Ovaj smo tjedan radili puno zakulisnog posla, preslikavajući svu složenost koju smo do sada otkrili. Izradili smo mnogo arhitektonskih dijagrama i dokumenata u tom procesu. Međutim, krajnji rezultat nisu komadići papira - to je povjerenje. Znamo odakle dolazimo i znamo kamo idemo dalje. Svako malo složenosti, kad se shvati i zapiše, postaje poznata stvar.

Ovo preslikavanje, odraz i istraživanje omogućuje snažniji dizajn. Dobro je odmah ući u ovu fazu

2. Značajka API-ja: Potvrda potpisa i podrška na niskoj razini KeyStore-a

Kriptografija je u središtu Holochainovog dizajna; to omogućuje sudionicima povjerenje u valjanost podataka koje vide. Kriptografija javnog ključa - posebno potpisa - jedan su od glavnih primitiva za izgradnju unutarnjeg povjerenja u podatke.

Holochain pridaje zaglavlje s potpisom na svaki podatak na razini "podsvijesti", međutim, puno slučajeva upotrebe treba i potpise u aplikaciji.

Digitalna provjera

Sljedeće alfa izdanje vidjet će dodavanje funkcije `verify_signature ()` kao nadopuna znaku `(() '. To nas približava karakteristikama pariteta s Holochain-Proto. To je prilično uzbudljivo, jer se važne aplikacije poput DPKI i HoloFuel uvelike oslanjaju na podatke potpisane s dvije ili više tipki. Ako dizajnirate aplikaciju koja zahtijeva kontra potpisane transakcije ili garancije trećih strana - poput ugovora, valuta i provjere identiteta - ove dvije funkcije su ključne za vas.

Budući da osoba koristi više Holochain aplikacija, generirat će puno ključeva koji predstavljaju i kontroliraju njihov identitet na mrežama kojima pripadaju. DPKI je osnovna aplikacija dizajnirana za upravljanje tim tipkama. Ponekad je potrebno potpisati podatke ključevima drugih aplikacija. Trenutno razvijamo podršku na nižoj razini za "prodavaonicu ključeva" koja drži sve korisničke tipke na uređaju i omogućuje ih pristup odgovarajućim aplikacijama. Napomena: Ova značajka bit će u 0.0.8-alfa.

3. Holo Enable: Live Instance Boots

Kako povećavamo svoje Holo Closed Alpha testiranje, Holo zahtjevi i dalje guraju Holochain značajke. Postoji krajnja točka API-ja za dirigent, `admin / instance / add ', koja vam omogućuje da stvorite instancu određene DNK. Holo presretač koji hostira nove instance na hosting uređajima u ime web korisnika, koristi ovu krajnju točku za svoj posao. Do sada je imao samo napisane unose u datoteku config, što je značilo da morate ponovno pokrenuti Dirigent da bi promjene stupile na snagu. Sada se primjeri stvaraju odmah. Napomena: To znači da su podaci za korisnika, a zapravo nisu pokrenuti.

4. Iskustvo programera: Ispitivanje DNK jedinice Rust HDK-om

Evo malo poznate činjenice - možete pisati jedinice testova za svoj zom kod, sastaviti DNK u testnom načinu i pokrenuti testove bez puštanja punog razvojnog vodiča. Bez ovog zahtjeva za povlačenje, sami biste morali dodati prazne definicije funkcija za sve funkcije HDK API-ja da ne biste dobili „neriješene reference“ kada pokušavate pokrenuti „teret tereta“.

Ova izmjena dodaje štapiće za svaku HDK API funkciju tako da možete pisati test jedinice za svoje funkcije zome koje ovise o API-ju. Prilično je ograničen; vaši testovi ne trebaju očekivati ​​stvarne odgovore na pozive Holochain API-ja, kao što su `commit_entry ()` i `get_entry ()`. Povratne vrijednosti uvijek će biti uspjeh s praznim korisnim teretom!

5. Razbijanje promjena / značajka API-ja: Provjera CRUD-a

Sada možete odrediti pravila za provjeru uklanjanja ili ažuriranja unosa. To dolazi s prekidnom promjenom: funkcije provjere valjanosti dobit će samo jedan argument, enum zvan `hdk :: EntryValidation `, kada ova značajka slijedi sa 0,0.8-alfa. Generički parametar 'T' predstavlja strukturu vaših vrsta unosa. Enum dolazi u tri okusa:

  • `Create`, koji sadrži novi unos.
  • "Izmijeni", koji sadrži stare i nove unose, kao i zaglavlje starog unosa.
  • `Delete`, koji sadrži stari unos i njegovo zaglavlje.

Sva trojica također sadrže paket za provjeru valjanosti. Dat ćemo više dokumentacije kada je ova značajka dostupna.

6. Izazovi: sinkroniziranje procesa izdanja i podrška za DevOps

Još uvijek se prilagođavamo našem novom procesu izdanja, zahvalni smo na vašem strpljenju dok radimo kinke - naučene lekcije - slijedite skriptu izdanja u pismu i pazite da vam Windows test ne uspije na pustite kandidata! Cilj nam je da se tjedni Dev Pulses sinkroniziraju s tjednim izdanjima.

Također smo sretni što možemo izvijestiti da smo prošlog tjedna angažirali DevOps Inženjera, a on je udario o tlo. Jedan od naših vragova komentirao je da je već dokazao svoju vrijednost.

On je zviždač u pronalaženju problema u gradnji, nedostajućih ili slomljenih ovisnosti i problema sa CI. On neizmjerno pomaže u dosljednim, kvalitetnim izdanjima.
Kriptografija je u središtu dizajna Holochaina

Izgradnja aplikacije / platforme na Holochainu? Želimo vas čuti!

Gradite li na Holochainu? Rado bismo se povezali i čuli više o vašoj aplikaciji / platformi. Uzmite nekoliko trenutaka da ispunite ovu anketu! Naš je cilj na našem web mjestu popisati sve projekte koji se grade na Holochainu.

Preljevak snopa: proširite bazu znanja Holochain

Pomozite nam da rastemo Holochain bazu znanja o preljevu stokova!

Pošaljite svoje Holochain pitanje.
Pošaljite svoje Holochain Rust pitanje.

Slijedi:

1) Pregled verzije za programere 0.0.8-alpha

Povežite se sa zajednicom programera:

  • Nadogradnja na Holochain: Portal za razvojne programere
  • Primjena: Tražimo Rust Dev i Vlasnika proizvoda i Koordinatora izdanja!
  • Povežite se na Twitteru