1. Personal FinanceEthereum Basics: En introduksjon til smarte kontrakter og soliditet
Ethereum For Dummies

Av Michael Solomon

Ethereum bruker smarte kontrakter for å begrense data til bestemte regler når du utveksler. For å skrive smarte kontrakter, må du være dyktig i et programmeringsspråk. Et av de mest populære språkene for smarte kontrakter og spesielt Ethereum er soliditet. Ta en titt på en kort introduksjon til disse emnene.

Grunnleggende om Ethereum smarte kontrakter

Når du bytter verdiverdier, er det generelt regler som styrer hvordan transaksjonen foregår. I mange tilfeller er reglene enkle. For eksempel gir du Joe 1,89 dollar, og Joe gir deg en brus. Hver part kan se og validere den andre parts bidrag til transaksjonen. Hvis du prøver å gi Joe Monopol penger, får du ikke brus.

Selv om denne transaksjonen virker enkel, er det mer enn det som møter øyet. I de fleste tilfeller, hvis en brus koster $ 1,89, må du tilby mer enn det for det. Du må også betale skatt. Så det er en annen deltaker i transaksjonen: regjeringen. I stedet for å beholde alle pengene, må Joe sende noe av det til regjeringen for skatter.

Å flytte til og med enkle transaksjoner som bruseksemplet inn i den digitale verden tar litt nøye gjennomgang. Du kan ikke bare sende penger til folk og stole på at de vil gjøre sitt. Du trenger en måte å håndheve regler og overholdelse for å sikre at alle parter blir behandlet rettferdig.

Smarte kontrakter hjelper deg med å håndheve regler når du bytter noe av verdi i Ethereum. Den enkleste måten å beskrive smarte kontrakter er at de er programmer som utføres når visse transaksjoner skjer.

Hvis du for eksempel oppretter en smartkontrakt med kjøp av brus, vil den programvarekoden kjøres hver gang noen kjøper en brus. Den smarte avtalekoden lagres i blockchain, så alle noder har en kopi av den. Det spiller ingen rolle hvor programvaren kjører: Alle noder er garantert å kjøre den på samme måte og få de samme resultatene som alle andre noder.

Ethereum smarte kontrakter er fullført, noe som betyr at de kan beregne alt som er beregningsdyktig med nok ressurser. Å ture fullstendighet er viktig fordi Ethereum smarte kontrakter ikke er begrenset i de typer handlinger de kan utføre. De kan utføre alle komplekse algoritmer du kan designe.

Den brus smarte kontrakten starter hos kjøperen. Slik kan utvekslingen skje:

  • Kjøperen oppretter en transaksjon som sender penger til selgeren i bytte mot brus. Kjøperen sender selgerens adresse som input til smartkontraktens adresse. Den smarte kontrakten kjører for å gjennomføre transaksjonen. Det bekrefter at du har nok penger på kontoen din til å betale for brus. Den smarte kontrakten bekrefter at selgeren har den brus du ønsker på lager. Den smarte kontrakten trekker penger fra kjøperen, sender midlene til selgeren og ber selgeren om å sende brus til kjøperen. I samme trinn sender smartkontrakten den nødvendige skatten til skattemyndighetskontoen og sender det resterende beløpet til selgerens konto.

Prosessen kan virke kjedelig, men den er grei og sørger for at hver transaksjon skjer på samme måte. Dette eksemplet er for enkelt for utvekslinger i det virkelige liv, og noen viktige detaljer har blitt utelatt. For det første antar du at selgeren vil sende brus til kjøperen. Ekte sentraler krever et ekstra lag beskyttelse for begge sider. Smarte kontrakter bruker escrow-kontoer hele tiden for å holde en kjøpers penger til selgeren leverer varene eller tjenestene.

Smarte kontrakter gir styring og forutsigbarhet av Ethereum. Uten dem ville Ethereum bare være en kult distribuert lagringsteknikk. Men med dem er Ethereum en stabil desentralisert plattform som støtter interaksjon og utveksling mellom utro brukere, inkludert ekstremt kompliserte transaksjoner. Det er lett å se trinnene som er nødvendige for å kjøpe en brus.

Andre transaksjoner, for eksempel eiendomstransaksjoner, er langt mer komplekse, har mange avhengigheter og krav, og involverer generelt flere mennesker og organisasjoner. Ethereum smarte kontrakter kan hjelpe utviklere med å lage programvare som eliminerer mellommenn, strømlinjeformer komplekse prosesser og reduserer den totale kostnaden og tiden som kreves for å fullføre selv de mest komplekse børsene.

Vi introduserer soliditet, språket i smarte kontrakter

Smarte kontrakter er programvare. Med nok ressurser kan smarte kontrakter gjøre hva som helst annen programvare kan gjøre. Du kan skrive Ethereum smarte kontrakter på flere språk:

  • Mutan: Et eldre smart kontraktsspråk som ble avskrevet i 2015. LLL: Et Lisp-lignende språk, tydeligvis utviklet for å se ut som språket Lisp. Selv om LLL fortsatt støttes, brukes den ikke for mange nåværende smarte kontraktsprosjekter. Slange: Et språk som ser ut som Python-språket. Fra september 2017 anbefales ikke Serpent for dagens utvikling. Bambus: Et relativt nytt språk som fokuserer på å gjøre blockchain-statlige overganger eksplisitte og unngå kode-reentrantproblemer. Viper: Et annet relativt nytt språk som fokuserer på sikkerhet og enkelhet. Soliditet: For tiden det mest populære smarte kontraktutviklingsspråket. Soliditet ser ut som JavaScript-språket og gir et fullverdig språk for å utvikle generelle smarte kontrakter.

Soliditet er det mest populære språket for smarte kontrakter, og det du mest sannsynlig vil støte på.

Hvis du er komfortabel med JavaScript, blir det litt enklere å plukke opp soliditet. Hvis du ikke vet mye JavaScript, er det greit. Du kommer til å lære det grunnleggende om soliditet fra første etasje. La oss faktisk starte med et program som kan se kjent ut: det allestedsnærværende "Hello world" -programmet.

Ta en titt på denne veldig enkle smarte avtalekoden:

pragma-soliditet ^ 0.4,25;
kontrakt helloWorld {
funksjon printHelloWorld () offentlig konstant retur (streng) {
returnere 'Hei verden!';
}
}

Slik ser en solidity smart kontrakt ut! Etter overskriften definerer du kontrakten din, og deretter eventuelle funksjoner som utgjør den indre funksjonen til programmet. Etter at du har skrevet og testet en smart kontrakt, kan du distribuere den til en blockchain og deretter utføre den. Når du får alt i orden, vil den smarte kontrakten din vise deg den ikoniske "Hello world!" -Meldingen.

Når du lærer mer om soliditet, vil du se at det ser ut som JavaScript, men også føles litt som C ++ og Python. Utviklerne av Solidity baserte språket på alle tre språk. Den støtter arv, biblioteker og brukerdefinerte typer som kan være ganske kompliserte. Det er også et statisk maskinskrevet språk, som betyr at du må oppgi eksplisitte datatyper for variablene du oppretter og bruker.

Fremfor alt er Solidity et smart kontraktsutviklingsspråk. Selv om det ser ut som andre språk, inkluderer det primitiver og en orientering designet for å samhandle med Ethereum blockchain.

Å ha en solid forståelse av smarte kontrakter og soliditet vil gjøre interaksjonene dine med Ethereum mye enklere.

  1. Personal FinanceEthereum Smart Contracts: Tips for håndtering av data i soliditet
Ethereum For Dummies

Av Michael Solomon

Soliditet er det mest populære språket for å skrive smarte kontrakter fra Ethereum. Soliditet ble foreslått av Gavin Wood i august 2014. Selv om det ikke er det eneste språket du kan bruke for å skrive smarte kontrakter, er det det mest populære språket for å skrive smarte kontrakter som kjører i Ethereum. Den nyter solid støtte fra Ethereum-samfunnet og ble utviklet av Ethereum-prosjektets soliditetsteam.

Soliditet ble designet for å likne JavaScript og ble påvirket av noen få andre populære programmeringsspråk også, inkludert C ++ og Python. Målet med soliditet er å tilby et språk som er kjent for webapplikasjonsutviklere, men som er målrettet mot smart kontraktutvikling. Soliditet er ikke ment ikke som et generelt språk, men for å støtte blockchain-spesifikke operasjoner med kode som kjører i EVM.

Før koden din kan kjøres i EVM, må du sammenstille den. Derfor var en av komponentene du installerte når du bygde utviklingsmiljøet ditt, en Solidity-kompilator. Du skriver først Solidity-kildekoden i en redaktør. Deretter kompilerer du den til bytekode, som er instruksjonene som kjøres i EVM. Etter at du har distribuert din smarte kontrakt-bykode, kjører den på alle Ethereum-noder.

Fordi smarte kontrakter kjører på alle noder, må soliditet håndheve determinisme, det vil si at resultatene må være de samme for alle noder som kjører din smarte avtalekode med samme input. Hvis du ser på soliditetsdokumentasjonen, finner du ikke en tilfeldig () -funksjon. Denne utelatelsen er spesielt for å støtte Soliditys determinisme. Koden din kjøres først av noden som gruver en ny blokk, men deretter bekrefter alle noder blokken og kjører koden for å sikre at de ikke får et annet resultat.

På mange måter ligner soliditet på andre programmeringsspråk. De største forskjellene er i hvordan programmene kjøres og hvordan Solidity håndterer data. Merk at Solidity kun omhandler data i EVM eller blockchain.

Soliditet samhandler ikke mye med omverdenen, men det er mulig. Soliditet støtter konseptet om et orakel, som er en pålitelig kilde til informasjon fra omverdenen.

Det er enkelt å ringe et orakel. Et problem er å kunne stole på orakelet. Et annet problem er å håndtere orakeledata som kan returnere forskjellige data hver gang de heter. Før du bruker orakler, må du forsikre deg om at datakilden er pålitelig og konsistent. Det er vanlig at orakler returnerer data og et bevis på ektheten.

Konseptet med tillit med hensyn til orakler er bare en utvidelse av blockchain-tillit. Husk at blockchain-teknologien gir en pålitelig hovedbok med data i et miljø med tillitsløse nettverksnoder. Fordi tillit er en slik grunnleggende egenskap for blockchain, er det ikke overraskende at det å stole på et orakel er en viktig bekymring.

Soliditet handler spesielt om hvor du kan lagre data. Du definerer vanligvis to typer variabler i soliditet: tilstandsvariabler og lokale variabler. Du definerer tilstandsvariabler i kontraktsdelen, og disse variablene er tilgjengelige hvor som helst i smartkontrakten. Disse variablene lagrer tilstanden til smartkontrakten din ved å lagre verdiene i en blokk på blockchain. Du definerer lokale variabler i funksjonene. Lokale variabler lagrer ikke verdiene sine mellom funksjonssamtaler. Disse verdiene lagres ikke på blockchain og går bort når funksjonen avsluttes.

Soliditet definerer tre steder for lagring av data:

  • Bunke: Hvor soliditet lagrer lokale enkle variabelverdier definert i funksjoner. Minne: Et minneområde på hver EVM som Solidity bruker for å lagre midlertidige verdier. Verdier som er lagret her blir slettet mellom funksjonssamtaler. Lagring: Der tilstandsvariabler definert i en smart kontrakt. Disse tilstandsvariablene ligger i delen om smarte kontraktsdata på blockchain.

Variabel lagringsplassering er en av de mer forvirrende aspektene ved soliditet. Soliditetsspråket har ikke et stabelnøkkelord, men har nøkkelord for minne og lagring. Soliditet bruker sine egne standarder, avhengig av hvor du definerer variabler og hvordan du bruker dem, men du kan overstyre noen av disse standardverdiene og også bruke nøkkelordene for å endre hvordan soliditet behandler variabler.

Her er noen regler som hjelper deg med å holde ting rett når du lærer om lagring av data i soliditet:

  • Tilstandsvariabler lagres som standard (verdiene lagres i blockchain). Lokale variabler i funksjoner er minne som standard (verdier lagres midlertidig i minnet). Strukturer lagres som standard (verdiene lagres i blockchain).

Soliditet kan håndtere forskjellige typer data og gir forskjellige typer variabler for å håndtere hver type. Når du definerer variabler, må du spesifisere datatypen til variabelen. Datatypen forteller soliditet hvor mye plass du skal fordele for verdien du vil lagre i variabelen og hvordan du behandler dataene. Tabellen nedenfor viser datatypene som Solidity støtter.

Etter hvert som smarte kontrakter blir mer komplekse, vil du sannsynligvis trenge å representere mer komplekse typer data. Det kan for eksempel være lurt å definere en fysisk adressetype som inneholder flere opplysninger, inkludert gateadresse, by, stat og postnummer.

Det kan også hende du må lagre tabeller eller lister med data. Soliditet lar deg lage dine egne datastrukturer med struktkompleks datatype. Du kan også definere matriser som lagrer grupper med lignende dataelementer. Soliditetsmatriser kan være grupper av enkle datatyper eller grupper av strukturer.

Her er en smart kontrakt som demonstrerer noen av Soliditys enkle datatyper. I dette eksemplet bruker du bare tilstandsvariabler, noe som betyr at du skriver til blockchain. Å definere alle variablene dine som tilstandsvariabler er ikke en god idé med mindre du vil lagre data for alltid. Data som er lagret i blockchain krever dyre operasjoner og skal ikke brukes med mindre du trenger å lagre dataene dine vedvarende. Foreløpig bruker du tilstandsvariabler.

Åpne VS-kode for myProject-prosjektet:

For å åpne VS-kode i myProject-prosjektet, åpner du en Windows Command-ledetekst eller PowerShell (min favoritt) og bruker cd-kommandoen til å navigere til prosjektkatalogen (myProject.) Herfra skriver du bare følgende kommando og trykker Enter:

kode.

Skriv deretter inn følgende kode eller last ned Ethereum-prosjektfilene fra Dummies.

pragma-soliditet 0,4,24;
/ *
* @title Soliditet datatyper
* @ forfatter Michael Solomon
* @ notice En ganske smart kontrakt for å demonstrere enkle datatyper som er tilgjengelige i Solidity
*
* /
kontrakt DataTypes {
uint x = 9;
int i = -68;
uint8 j = 17;
bool isEthereumCool = sant;
adresseeier = msg.sender; // Ethereum-adresse til meldingssenderen
bytes32 bMsg = "hei";
string sMsg = "hei";
funksjon getStateVariables () offentlig visning returnerer (uint, int, uint8, bool, address, bytes32, string) {
retur (x, i, j, isEthereumCool, eier, bMsg, sMsg);
}
} <

Før du kan distribuere og teste den nye smarte kontrakten, må du legge den til i JavaScript-skriptet for overføring. Åpne filen 2_contracts_migrations.js i VS-kode i Migrations-katalogen. Legg deretter til de to linjene med kommentarer slik at filen din ser slik ut:

var HelloWorld = artifacts.require ("HelloWorld");
var DataTypes = artifacts.require ("DataTypes"); // Legg til denne linjen
module.exports = funksjon (deployer) {
deployer.deploy (Hello);
deployer.deploy (DataTypes); // Legg til denne linjen
};

Ikke glem å lagre filen etter at du har lagt til den nye teksten!

Her er trinnene du kan bruke for å distribuere og teste den nye smarte kontrakten:

  1. Forsikre deg om at du har Ganache i gang. I VS-kode, klikk eller trykk på kategorien Terminal, skriv inn følgende, og trykk deretter Enter: trøffeldistribusjon - reset Skriv trøffelkonsoll og trykk Enter. Skriv inn følgende ved Truffle-konsoll-ledeteksten og trykk Enter: DataTypes.deployed (). Deretter (funksjon (instans) {return-instans.getStateVariables ()});

Følgende bilde viser verdiene som den nye smarte kontrakten din returnerer. Truffle viser returverdiene på en interessant måte. Tall returneres som BigNumber-objekter. Du kan ringe funksjoner i et BigNumber-bibliotek for å konvertere dem, men foreløpig er det bare å lese verdiene direkte.

For de numeriske returnerte verdiene er den første verdien, s: tegnet på tallet, og den tredje verdien, c: er den usignerte verdien funksjonen returnerte. Vær også oppmerksom på at adresse- og bytes32-verdiene er i heksadesimal format.

Ethereum smart kontrakt
  1. Personal FinanceBasic Ethereum Smart Contract Syntax
Ethereum For Dummies

Av Michael Solomon

Hvis du planlegger å gjøre noen Ethereum-utvikling, vil du sannsynligvis bruke Solidity, et av de mest populære programmeringsspråkene for smarte kontrakter. La oss se på noen grunnleggende syntaks for soliditet. Når du skriver Solidity-kildekoden, lagrer du den koden i en fil med filtypen .sol.

Ethereum smat kontraktskode

Et soliditetsprogram har flere hoveddeler, som følger:

  • Pragma: Dette forteller soliditeten hvilke versjoner av kompilatoren som er gyldig for å kompilere denne filen. Kommentarer: Utviklere bør bruke kommentarer for å dokumentere kode. Import: En import definerer en ekstern fil som inneholder kode som smartkontrakten din trenger. Kontrakt (er): Denne delen er der kroppen til den smarte avtalekoden er bosatt.

Deklarerer gyldig kompilatorversjon i Ethereum smarte kontrakter

Pragma-direktivet skal være den første kodelinjen i en soliditetsfil. Siden soliditetsspråket fremdeles modnes, er det vanlig at nye kompilatorversjoner inkluderer endringer som ikke klarer å kompilere eldre programmer. Pragma-direktivet hjelper deg med å unngå kompilatorfeil på grunn av bruk av en nyere kompilator.

Her er syntaks for pragdirektivet:

pragma Soliditet << versjonsnummer >>;

Her er et eksempel på pragma-direktiv:

pragma Soliditet ^ 0.4.24;

Alle uttalelser i soliditet slutter med et semikolon.

Versjonsnummeret starter med et 0, etterfulgt av et stort byggnummer og et mindre byggnummer. For eksempel refererer versjonsnummer 0.4.24 til major build 4 og minor build 24. Caret-symbolet (^) før versjonsnummeret forteller Solidity at det kan bruke den siste builden i et større versjonsområde. I det foregående eksemplet kan Solidity bruke en kompilator fra hvilken som helst build i versjon 4 build-serie. Dette er en måte å fortelle leserne at programmet ditt ble skrevet for 0.4.24, men fortsatt vil kompilere for senere versjon 4-bygg.

Selv om bruk av caret i pragma-direktivet gir fleksibilitet, er det en bedre praksis å slippe caret og fortelle Solidity nøyaktig hvilken kompilatorversjon du forventer.

Kommenterer soliditetskoden

Å legge til kommentarer til koden din er et ekstra trinn som gir et profesjonelt utseende og følelse til soliditetskoden. En godt kommentert kildekodefil er enklere å lese og forstå og hjelper andre utviklere raskt å forstå hva koden din skal gjøre. Selv enkle kommentarer kan kutte ned tiden som kreves for å fikse feil eller legge til ny funksjonalitet. Kommentarer kan også gi innspill til verktøy for å generere dokumentasjon for smarte kontrakter.

Du kan bruke enkle eller flere linjer vanlige kommentarer. Kommentarer på en linje starter med to skråstreker. Multiline-kommentarer starter med / * -tegnene og slutter med * / -tegnene. Her er et eksempel på soliditetskommentarer:

// Her er en enkelt linje Soliditetskommentar
/ * Jeg har mye mer å si med denne kommentaren, så det gjør jeg
bruk en multiline kommentar. Kompilatoren vil ignorere
alt etter åpningen kommenterer karakterene, til
den ser de avsluttende kommentarfigurene. * /

En tredje type soliditetskommentar kalles Ethereum Natural Specification (NatSpec) -direktivet. Du kan bruke NatSpec til å gi informasjon om koden din for dokumentasjonsgeneratorer som skal brukes til å lage formatert dokumentasjon som beskriver smarte kontrakter. NatSpec-direktiver starter med tre skråstrek og inkluderer spesielle koder med data for dokumentasjonen. Her er et eksempel på bruk av NatSpec-direktiver:

/// @title Greeter smart kontrakt
/// @ Author Joe Programmer
/// @ merknad Denne koden tar navnet til en person og sier hei
/// @param name Navnet på den som ringer
/// @ return greeting Hilsen med den som ringer

Sjekk ut NatSpec-dokumentasjonen for ytterligere informasjon.

Importer ekstern kode til din Ethereum smarte kontrakt

Importdelen er valgfri, men kan være kraftig når den brukes riktig i din Ethereum smartkontrakt. Hvis smartkontrakten din må referere til kode i andre filer, må du importere de andre filene først. Å importere filer gjør det som om du kopierte den andre koden til den gjeldende filen. Å bruke import hjelper deg å unngå å kopiere kode fra et sted til et annet. Hvis du trenger tilgang til kode, bare importer soliditetsfilen som inneholder den.

Syntaks for import av andre filer er enkel. Du bruker importnøkkelordet og oppgir deretter filnavnet for filen du vil importere. For å importere filen myToken.sol, bruk for eksempel denne syntaks:

Importer 'myToken.sol';

Definere dine Ethereum smarte kontrakter

I den siste hoveddelen av Soliditet definerer du innholdet i din smarte kontrakt. Det starter med nøkkelordkontrakten og inneholder all funksjonskoden i din smarte kontrakt. Du kan ha flere kontraktseksjoner i soliditet. Det betyr at en enkelt .sol-fil kan definere flere kontrakter. Her er et eksempel på en kontraktsdel:

kontrakt HelloWorld {
string private helloMessage = "Hallo verden";
funksjon getHelloMessage () offentlig visning returnerer (streng) {
return hallo Melding;
}
}

Inne i kontraktsdelen er det der du definerer alle variabler, strukturer, hendelser og funksjoner. Det er mye mer til kontraktsdelen av koden din, men foreløpig vet du hvordan du kan sette opp en solidity smart kontrakt.

Når du mestrer det grunnleggende om soliditet, kan du fortsette å utvikle mer kompleks kode og himmelen er grensen.

  1. Personal Finance10 Gratis etereumressurser
Ethereum For Dummies

Av Michael Solomon

Mange gratis ressurser er tilgjengelige for å hjelpe deg med å utvikle avanserte Ethereum dApps. Det er forskjellige verktøy for Ethereum i fire kategorier: blockchain klient, test blockchain, testing framework og IDE. Du trenger ikke å søke veldig hardt for å finne mange gratis Ethereum-ressurser i nesten alle kategorier.

Her lærer du om ti flere gratis verktøy som hjelper deg å lage dine egne Ethereum blockchain dApps. Noen av ressursene du finner her er alternativer til de mer populære verktøyene, og andre utfyller verktøyene du sannsynligvis allerede bruker. Hver av ressursene som er oppført her har unike funksjoner og bør være på listen over interessante forskningsideer. De er alle gratis, og de er alle verdige tillegg til Ethereum-utviklingsverktøykassen.

Utforsk alternative Ethereum-utviklingsrammer

Selv om trøffel er den vanligste rammen som er i bruk, er den ikke den eneste. Avhengig av dine behov og preferanser, bør du se på et par alternativer. På slutten av dagen velger du utviklingsrammen som passer best med opplevelsen din og gjør det å utvikle dApps for Ethereum så frustrasjonsfri som mulig.

Administrer din Ethereum-utvikling med Populus

Populus-rammeverket gir mange av de samme funksjonene som trøffel. Men fordi Truffle fokuserer på JavaScript-miljøet, må du skrive mange JavaScript-koder for å automatisere oppgaver, teste og vedlikeholde dApps ved å bruke Truffle. Det er bra hvis du har mye erfaring med JavaScript og er komfortabel i miljøet. Men hvis du ikke kjenner JavaScript eller ikke vil investere tid i å lære det, kan det være lurt å se på et rammeverk basert på noe annet.

Populus er et Python-basert Ethereum-utviklingsrammeverk. Hvis du har Python-erfaring eller bare liker å jobbe med Python, kan Populus være verdt å se nærmere på. Denne siden inneholder en hurtigstartguide, dokumentasjon og instruksjoner om installasjon og bruk av Populus. Hvis du liker Python, kan du prøve Populus for å se hvordan det kan sammenlignes med trøffel.

Populus krever at du allerede har Python installert. Fordi Python 2.7 End of Life (EOL) er planlagt til november 2020, bør du installere Python versjon 3. Du bør finne den nyeste Python-versjonen for operativsystemet ditt.

Utforsk Ethereum blockchain-containere med Cliquebait

Cliquebait er et annet Ethereum-utviklingsramme-alternativ til trøffel. I stedet for å kjøre et blockchain-miljø naturlig på datamaskinens operativsystem, bruker Cliquebait Docker-containere, som ligner på virtuelle lette maskiner.

Docker lar deg starte flere containere, alle kjører som separate virtuelle maskiner (VM), med langt mindre overhead enn å kjøre flere standard VM-er. Hver standard VM som du lanserer, kjører en full kopi av et operativsystem, sammen med virtuelle kopier av maskinvaren som VMs operativsystem trenger å kjøre. En container, for eksempel en Docker-container, kjører bare operativsystemkomponenter og virtuell maskinvare som programmene trenger. Resultatet er virtualisering med lavere ressurskrav.

Cliquebait gir et Docker-bilde som gir en Ethereum blockchain med en node som du kan bruke til å utvikle og teste smarte kontrakter. Den støtter også lansering av flere Docker-containere for å simulere en multi-node blockchain, som alle kjører på datamaskinen din.

Docker må være installert før du kan installere og kjøre Cliquebait. Når du har installert Docker, kan du gå til Github for å få instruksjoner om bruk av Cliquebait.

Velg et gratis integrert utviklingsmiljø for Ethereum

IDE-en du velger å skrive kode, vil være det mest synlige verktøyet i dApp-utviklingsverktøysettet. Du vil bruke mer tid på å bruke (eller slåss) IDE-en din, så det å finne den rette er avgjørende for å være produktiv. Den beste IDE-en er i betraktningens øye. Du bør prøve flere IDE-er og velge den som er mest behagelig for deg.

Utvikle soliditetskode med Atom

Atom er ikke strengt tatt en blockchain-basert IDE. Det er en kraftig generell IDE med Solidity-plugins. Når du legger til Etheratom-plugin-modulen, får du syntaksmarkering, fullføring av kode og muligheten til å ringe Solidity-kompilatoren med et enkelt tastetrykk.

Nedenfor ser du hovedatomgrensesnittet. Det ligner og føles som VS-kode, med en egen karakter. Etter installering av Atom, sjekk ut disse instruksjonene for installasjon av Etheratom-plugin-modulen.

Atom IDE

Gå online med Remix

Et alternativ til å installere en IDE på din egen datamaskin er å bruke en nettleserbasert IDE. Remix er en populær IDE som du får tilgang fra hvilken som helst nettleser. Det lar deg skrive kode i Soliditet, og deretter distribuere til en blockchain. Med Remix kan du enkelt velge en spesifikk Solidity-kompilatorversjon, sammen med mange funksjoner og alternativer du vil finne nyttige når du utvikler dApps i Solidity.

Du kan legge til kode fra din lokale datamaskin, eller du kan skrive den rett fra Remix-editoren.

Remix IDE

Hold ting enkelt med EthFiddle

En annen nettbasert Solidity IDE er EthFiddle. EthFiddle er et godt valg for en enkel nettbasert IDE for å skrive og sammenstille Smartity-smarte kontrakter. I motsetning til Remix, gir EthFiddle ikke en måte å distribuere koden på.

EthFiddle IDE

Utforsk Ethereum-klienter og API-er

Etter at du har skrevet den smarte avtalekoden, må du distribuere den til en Ethereum-klient og deretter kunne få tilgang til blockchain for å teste og påkalle koden din etter at den er i produksjon. Som med rammer og IDEer, er mange gratis ressurser av høy kvalitet tilgjengelig.

Bytt din Ethereum-klient til Parity

Parity er en Ethereum-klient som kjører en node i et Ethereum blockchain-nettverk. Selv om geth er mer populært, er Parity et godt alternativ som kan skilte med flere fordeler fremfor geth, inkludert følgende:

  • Raskere: Synkroniserer hele Ethereum blockchain på bare få timer og er bygget for å redusere CPU og nettverksbelastning. Bruk av lavere diskplass: Beskjærer Ethereum-blokkene for å bruke mindre lokal diskplass. Nettbasert GUI: Tilbyr funksjoner som er lett tilgjengelige gjennom et brukervennlig nettlesergrensesnitt.

Naviger til for å komme i gang med Parity. Hvis du vil bruke Parity UI, kan du gå til Github for å finne den nyeste utgivelsen. Bildet nedenfor viser et nylig installert Parity UI. Merk at første gang du kjører Parity UI, kjører den Parity og starter synkroniseringsprosessen med det levende Ethereum-nettverket.

Parity UI

Samhandle med Ethereum ved å bruke web3.js

Den klart vanligste måten å samhandle med Ethereum smarte kontrakter på er gjennom en samling biblioteker skrevet i JavaScript kalt web3.js. Du kan skrive kode i JavaScript eller et hvilket som helst språk som støtter JavaScript-anrop. Derfra gjør web3.js det enkelt å samhandle med Ethereum-data og -funksjoner.

Naviger til Github for å få den nyeste versjonen av web3.js, og hent deretter den siste web3.js-dokumentasjonen.

Hvis du leter etter en god web3.js-opplæring, kan du se på introduksjonen til Dapp Tutorial.

Fokus på Ethereum lommebøker og sikkerhet

Sikkerhet er alltid en bekymring når du utvikler Ethereum dApps. Naturen til blockchain-teknologi gjør det bevisste fokuset på sikkerhet til et ønsket designmål. Å bygge sikkerhet i dApps avhenger av å ha de rette byggesteinene og en solid metode for å opprettholde sikkerheten etter distribusjon. To gratis ressurser som hjelper deg med å skrive og vedlikeholde sikre dApps er Mist-lommeboken og OpenZeppelin sikkerhetsbibliotek.

Beskytt dine Ethereum krypto-eiendeler i Mist

Mist er både en Ethereum lommebok og en Ethereum nettleser. Mist er den offisielle lommeboken for Ethereum, utviklet av Ethereum Foundation. Det gir også tilgang til dApps, på samme måte som populære nettlesere gir deg tilgang til nettsteder rundt Internett.

Mist gjør mer enn bare å bla gjennom blockchain-apper; den gir en pakke verktøy for å samhandle med Ethereum-nettverket. Med Mist kan du generere smarte kontrakter, pool cryptocurrency og dele informasjon blant deltakere som ikke stoler på hverandre. Mist forsøker å gjøre Ethereum blockchain-tilgang så enkel som mulig.

Last ned den siste Mist-utgivelsen for operativsystemet ditt for å komme i gang. Etter at du har installert Mist, kan du starte nettleseren for å opprette en konto eller samhandle med Ethereum blockchain med en rekke verktøy.

Sikre Ethereum dApps med OpenZeppelin

En av de vanskeligste delene av å utvikle smarte kontrakter i et Ethereum-miljø, er å gjøre dem sikre fra begynnelsen. Selv om det kan være enkelt å vurdere sikkerhet fra begynnelsen av prosjekteringsfasen, er det vanskeligere å skrive sikker smart kontraktkode. OpenZeppelin-biblioteket er en samling av soliditetskoder som hjelper deg å implementere sikker kode i smarte kontrakter.

Du kan importere OpenZeppelin i smarte kontrakter og deretter dra nytte av de mange implementeringene av Ethereum-standarder, for eksempel ERC-20-symboler, i stedet for å måtte implementere dem selv. OpenZeppelin forhindrer deg i å måtte oppfinne sikkerhetshjulet i din Solidity-smarte avtalekode.

Lær mer om utvikling av Ethereum dApps

Hvis du vil lære mer om Ethereum-utvikling og ha det veldig moro i prosessen, kan du sjekke ut CryptoZombies. CryptoZombies er en trinnvis tutorial for soliditet der du utvikler et blockchain-basert spill som involverer en zombiehær du oppretter. Når du får erfaring, nivåer zombiene dine og får nye ferdigheter.

  1. Personal Finance Top 10 Ethereum Uses
Ethereum For Dummies

Av Michael Solomon

Blockchain-teknologi generelt, og Ethereum spesielt, vokser raskt i popularitet. Stadig flere organisasjoner omfavner Ethereum til nye prosjekter. Ulike prosjekter som bruker Ethereum som grunnlag er nesten ubegrensede.

En rask titt på nettstedet State of dApps viser hvor mange Ethereum-prosjekter som finnes i forskjellige kategorier og hvor populære de er. Utforsk et stort antall populære dApps. Denne ressursen er en flott måte å holde deg oppdatert på trending dApps.

Selv om disse Ethereum-prosjektene bare er et lite representativt utvalg av det som er der ute, vil de gi deg litt eksponering for hva andre gjør med Ethereum. Kanskje vil du finne noen ideer for nye og spennende måter som Ethereum kan bidra til å transformere organisasjonen din.

Til tross for mangfoldet av funksjonalitet i hvert prosjekt, er de alle bygd på Ethereum. Hvert prosjekt bruker smarte kontrakter som kjører på EVM for å utføre funksjonalitet og Ethereum blockchain for å lagre tilstandsdata.

Gnosis spår fremtidige hendelser med Ethereum

Gnosis er et av de mange innovative selskapene som bruker Ethereum på interessante måter. Gnosis gir en plattform for prediksjonsmarkeder. Gnosis Olympia-produktet er alfa-versjonen av plattformen deres. Ved å bruke Olympia får deltakerne en begynnende saldo av OLY-symboler, later som de kan bruke penger i Olympia, som de bruker for å gjøre spådommer om en rekke temaer. Deltakerne kan vinne GNO-symboler for å gjøre vellykkede spådommer.

Deltakere som setter opp prediksjoner knytter prediksjonen til et orakel for utfallsvalidering. For eksempel valideres den sanne verdien av en spesifikk aksjekurs på en bestemt dato og tid lett ved å sammenligne prediksjonen med publiserte aksjekurser. Kilden til aksjekursen vil være det orakel som aksjekursprediksjonen bruker for validering.

Gnosis Olympia gir plattformen for deltakerne å bestemme sannsynligheten for noe utfall. Du kan bruke Olympia til å bestemme en forventet verdi av en eller annen verdi. Når du kjenner verdien til et element, får du mer innflytelse i forhandlingene.

En annen mulig brukssak er med valg. Distribuerte prediksjonsmarkeder kan dukke opp for å gi bedre prognoser for kommende valg. Politisk meningsmåling har gjennomgått kritikk for mangel på presisjon, og nye produkter kan bidra til å øke nøyaktigheten.

Augur publiserer begivenhetsspådommer

Augur er et annet tilbud innen kategorien for prediksjon. I likhet med Gnosis kan deltakerne registrere hendelser og deretter gi en prediksjon om resultatet av hendelsen. Augur belønner deltakerne med REP-symboler i bytte for å gi nøyaktige data relatert til hendelsen og for å stemme med flertallet.

Augur er basert på data fra publikum og blir mer nøyaktig med inkludering av deltagerdata. Derfor gir du nøyaktige data en belønning. Et orakel validerer hendelsesdata og utfall, men det legges fortsatt vekt på innmat fra publikum.

Augur er helt desentralisert og avhengig av smarte kontrakter og Ethereum blockchain for å operere. Målet er å tilby en global portal som genererer bedre prognoser om utfallet av enhver fremtidig hendelse som har bred global interesse.

Aragon administrerer desentraliserte organisasjoner med Ethereum

Aragon er en plattform dedikert til å hjelpe til med å administrere desentraliserte organisasjoner, som ofte lider av mangel på infrastruktur og funksjonalitet. Aragon-deltakere kjøper Aragon Network Tokens (ANT) fra en av flere populære cryptocurrency-børser, og bruker ANT for å betale for Aragon-tjenester.

Aragon legger til rette for distribuert autonom organisasjonsstyring, innsamling og regnskap. For eksempel kan deltakere i Aragon stille spørsmål til organisasjonen sin for å stemme. Aragon-miljøet håndterer alle detaljene om å styre stemmeprosessen, noe som resulterer i bekreftede valgresultater. Stemming er bare en av funksjonene på plattformen.

Aragon-prosjektet har som mål å styrke desentraliserte deltakere ved å fremme deltakelse og gi økonomisk åpenhet. Aragon gjør det mulig for organisasjoner å eksistere utenfor den tradisjonelle hierarkiske, sentraliserte modellen.

Avle og samle kryptokitter i Ethereum

Ethereum handler ikke bare om cryptocurrency og forretningsfunksjon. Du kan finne noen morsomme spill i Ethereum-rommet også. Cryptokitties, et av de første Ethereum-baserte spillene, er fortsatt populært. Dette revolusjonerende spillet introduserte blockchain-baserte cryptocollectibles. Det er riktig. Cryptokitties kan samles.

Hver cryptokitty er unik. Teknisk sett er hver kryptokitty et ERC-721-symbol og har et unikt sett med kattributer (cryptokitty DNA) som kommer fra hver enkelt kryptokittis foreldre. Det stemmer, du oppretter ikke kryptokitter. du avler dem.

Og akkurat som i det virkelige liv (vel, slags), kan du enten stole på genetisk flaks for å skape en sjelden og verdifull kryptokitty, eller du kan betale et sifteavgift til en annen kryptokitty for evnen til å avle opp ved hjelp av kryptokittiene deres. Hver kryptokitty har en annen verdi, basert på sjeldenhetene i sine cattributter. I det siste solgte noen cryptokitties med sjeldne cattributter (og en gunstig ETH-valutakurs) for over $ 100.000 USD.

Bildet nedenfor viser Cryptokitties nettsted med eksempler på noen få cryptokitties, hver med sine egne unike cattributter.

spille cryptokitties med Ethereum

Utveksle tokens med IDEX

Tusenvis av ERC-20-symboler er i bruk. Før du kan bruke et symbol for å betale for noe, må du skaffe deg det. Noen symboler er gratis, men andre må kjøpes. For å kjøpe et symbol, må du bytte valuta eller cryptocurrency, så du trenger en organisasjon som leverer utvekslingstjenester.

IDEX er en desentralisert utveksling (DEX) som spesialiserer seg i handel mellom ETH og ERC-20 tokens. Det bekrefter transaksjoner i sin smarte kontrakt, uten å vente på gruvedrift fra Ethereum. IDEXs evne til å bekrefte transaksjoner i sanntid gjør at tradere kan handle kontinuerlig.

Bestillinger blir registrert på Ethereum blockchain i den rekkefølgen de ble mottatt, men handelsmenn trenger ikke å vente på symbolene sine. De mottar dem så snart ordren er godkjent av den smarte kontrakten.

Dette bildet viser IDEX-nettstedet med en liste over de mest aktive Ethereum ERC-20-symbolene.

Ethereum IDEX

Bruk Ethereum for å opprette din digitale identitet med uPort

UPort dApp er et innovativt initiativ med et enkelt formål: å gi en desentralisert identitet for alle, lagret på Ethereum blockchain. Brukere registrerer identiteten sin gjennom uPort. Når de er autentisert, kan brukerne bruke uPort digital identitet til å signere digitale kontrakter og samhandle med andre tjenester som krever validerte identiteter.

UPort dApp har mange potensielle bruksområder. Et av de mest synlige behovene uPort kan hjelpe til med å adressere, er å gi personer som har mistet fysiske identifikasjonsgjenstander fortsatt fremlegge bevis på identitet når det er nødvendig. Overlevende av katastrofale hendelser har ofte ingen identifikasjon med dem. Å få tilgang til en uforanderlig digital identifikasjon kan bidra til å lindre dette problemet. Digitale identiteter kan hjelpe med innvandring, stemmegivning og andre tilfeller der identifikasjon er påkrevd.

Del tankene dine om blockchain med EtherTweet

Som navnet antyder er EtherTweet et blockchain-alternativ til Twitter. Hovedforskjellen er at EtherTweet er sensurfritt fordi alle meldingene er lagret på Ethereum blockchain. Du kan legge inn opptil 160 tegn.

Selv om prisene endres basert på dagens verdi av eter, koster det å skape en EtherTweet-konto omtrent 2 øre, og hver tweet koster omtrent en tredjedel av en cent. Følgende bilde viser EtherTweet-nettstedet med instruksjoner om hvordan du bruker webgrensesnittet sitt til å legge ut og lese tweets.

EtherTweet

Bruk Ethereum for å søke etter jobber med EthLance

EthLance er en distribuert plattform for frilansere og arbeidsgivere for å finne hverandre, engasjere seg i jobber og overføre betaling i eter. EthLance er en del av distriktet0x-nettverket, som er et kollektiv av desentraliserte markedsplasser og lokalsamfunn. En av EthLances fremragende funksjoner er at den ikke innkreverer noen avgifter.

Medlemskap i EthLance er gratis, og både frilansere og arbeidsgivere kan bruke nettverket for å matche personell med åpne jobber. Når arbeidet er fullført, kan arbeidsgivere betale frilansere direkte ved bruk av eter. Hele EthLance-plattformen kjører i Ethereum. Den transparente naturen til EthLance og dens nullgebyrmodell gjør den til en flott ressurs for selvstendig næringsdrivende.

Bildet nedenfor viser EthLance-nettstedet med sin “hvordan det fungerer” grafikk som viser hvordan frilansere og arbeidsgivere kan bruke tjenestene. For å lære mer om EthLance, naviger til nettstedet deres på.

EthLance

Bruker TenX for å betale med eter og andre kryptovalutaer

TenX lar kundene bruke eter og andre kryptovalutaer hos detaljister for å betale for kjøp over hele verden. Selv om de fleste forhandlere ikke støtter direkte kryptovaluta ennå, opprettet TenX sin egen linje med kryptodebetkort og kredittkort som kobler sammen med den proprietære krypto-lommeboken. TenX-kortene gir broen mellom cryptocururrency og tradisjonelle betalingsbiler.

TenX registrerer alle betalingstransaksjoner på blockchain, og har planer om et større nettverk som lar apper kommunisere på tvers av flere blockchains.

Bildet nedenfor viser TenX-nettstedet med et bilde av TenX-debetkortet.

TenX debetkort

Bruk Ethereum til å kjøpe og selge datakraft med Golem

Det siste innovative Ethereum-prosjektet er Golem. Golem er en desentralisert markedsplass for kjøp og salg av datakraft. Enten du har overflødig datakraft som du vil selge, eller du trenger å leie mer datakraft for å fullføre et prosjekt midlertidig, kan Golem hjelpe. Du kan bruke Golem-superdatamaskiner etter å ha betalt innfødt GNT-token, eller du kan tjene GNT for å la andre bruke overskytende datakraft.

Golem nettsted

Som det er tydelig over, kan Ethereum brukes til alle slags kreative prosjekter. Hvordan vil organisasjonen din bruke Ethereum?

  1. Personlig økonomi Ulike typer Ethereum lommebøker
Ethereum For Dummies

Av Michael Solomon

Alt som er lagret i en Ethereum-blokk har en adresse slik at eieren kan finne og få tilgang til dataene sine i blokker. Data lagret i Ethereum-blokker kan være kryptoaktiver, for eksempel eter eller andre symboler, smarte kontrakter eller andre data. Adressen til dataene identifiserer eieren av disse dataene. Og når det gjelder krypto-eiendeler, er det bare eieren som har tilgang til disse dataene. Vel, alle kunne få tilgang til krypterte data, men bare eieren kan dekryptere dataene og konsumere eiendelen.

Personen som kontrollerer den private nøkkelen som brukes til å kryptere data på blockchain, kontrollerer dataene. Den eneste måten du kan kreve krypto-aktiva på, er å bevise at du kontrollerer den private nøkkelen tilknyttet en krypto-eiendels adresse.

Adresser i Ethereum er de siste (til høyre) 20 byte av hasjen til eierens offentlige nøkkel. For å beregne en adresse er det bare å beregne Keccak-256-hash for en offentlig nøkkel, og deretter kopiere de høyre 20 byte til høyre. Den resulterende verdien er adressen til den offentlige nøkkelen til den kontoen. Koden for å beregne en adresse fra en offentlig nøkkel ser slik ut:

addr = høyre (keccak256 (pubkey), 20)

Den eneste måten å beskytte krypto-eiendelene dine er å beskytte dine private nøkler. Du trenger noen mekanismer for å lagre din private nøkkel slik at du kan komme til den, men ingen andre kan. Den primære funksjonen til lommeboken er som et sted å lagre en eller flere private nøkler som brukes til å få tilgang til blockchain-data.

Den perfekte Ethereum-lommeboken gjør det veldig enkelt for deg å komme til tastene dine og umulig for noen andre å få tilgang til tastene dine. Alle lommebøker balanserer disse to målene og skaper et kompromiss mellom verktøyet (hvor lett det er å få tilgang til nøklene dine) og sikkerhet (hvor sikre nøklene dine er fra angrep).

Typer Ethereum lommebøker

Private nøkler kan lagres på flere måter, alt fra veldig sikker til veldig lett tilgjengelig. Du bør vurdere hvor viktige dine private nøkler er og velge en lommeboktype som fungerer for deg. De viktigste kategoriene av lommebøker følger:

  • Programvarelommebøker lagrer private nøkler i datafiler, der brukere enkelt kan få tilgang til dem. Hardware-lommebok lagrer private nøkler på en fysisk brikke som er lagret i en enhet, for eksempel en Ledger Nano S. Papir lommebøker er papirbiter med tastene trykt på dem.

Programvare Ethereum lommebøker

Programvarelommebøker er programmer som lagrer private nøkler og gjør det enkelt for brukere å hente og bruke disse nøklene. Etter å ha satt opp lommeboken, kan du få tilgang til nøklene dine ved å oppgi en bruker-ID og passord eller en kryptert fil som bare du har. Programvarelommebøker kan videre deles inn i to hovedkategorier: varme lommebøker og kalde lommebøker.

Ethereum varm lommebok

En varm lommebok er en som lagrer nøklene dine på nettet. Du kan enkelt få tilgang til nøklene og Ethereum-eiendelene dine fra hvor som helst i verden. Alt du trenger er en Internett-tilkobling og tilgangsinformasjon. Selv om varme lommebøker er praktiske, koster den komforten. Hvis noen stjeler adgangsbevisene dine, kan han eller hun stjele Ethereum-eiendelene dine.

Du må også stole på lommebokorganisasjonen som lagrer nøklene dine. Hvis din Ethereum lommebokorganisasjon er hacket eller går ut av drift, kan du miste alt. Hvis denne organisasjonen er et mål for en etterforskning, kan informasjonen din røpes eller Ethereum-formuen fryses. Du gir opp kontrollen for å få bekvemmelighet.

Ethereum kald lommebok

En kald lommebok er en der du lagrer nøklene offline. Du må oppgi nøklene dine bare når du vil ha tilgang til Ethereum-eiendelene. Du kan lagre nøkler offline på flere måter, men denne tilnærmingen krever noen ekstra trinn når du vil kjøpe eller selge krypto-eiendeler eller samhandle med smarte kontrakter.

Selv om kalde lommebøker er litt mindre praktiske, kan de være sikrere. Du har kontroll over nøklene dine med denne typen Ethereum lommebok og kan ta de forholdsregler du mener er nødvendige for å beskytte nøklene dine. Å bruke en kald lommebok gir deg et alternativ og demper trusselen om at en angriper hacker seg inn i din online lommebok og høster mange nøkler.

Med en kald lommebok er du ansvarlig for å beskytte nøklene dine. Du må sørge for at hvert sted du lagrer nøklene dine er så sikre som mulig. Hvis du har mye verdi lagret på Ethereum blockchain, må du forsikre deg om at lagringsplasseringene dine er så sikre som mulig og at du ikke får tilgang til andre enn deg.

Varm lommebok vs kald lommebok for Ethereum

Hvordan bestemmer du om du vil bruke en varm lommebok eller en kald lommebok til Ethereum? Hvis du vil ha mer komfort og stole på sikkerheten til en online lommebokleverandør, kan en varm lommebok være det beste valget. Hvis du ikke planlegger å lagre noe av stor verdi med en spesifikk Ethereum-konto, er en varm lommebok enklest og kan være mest fornuftig for den kontoen.

På den annen side, hvis du mistroer online-leverandører og er komfortabel med å ta ansvar for å sikre nøkkellagring, vil en kald lommebok gi deg mer kontroll. Eller hvis du planlegger å lagre eiendeler med betydelig verdi, bør du ta ansvar for å beskytte dine egne ting. Du må ofre litt bekvemmelighet, men å miste all cryptocurrency er upraktisk i seg selv.

Typer lommebokklientprogramvare for Ethererum

Etter at du bestemmer deg for å lagre nøklene i en varm eller kald lommebok, er det neste valget typen (e) type lommebokklientprogramvare. Hvis du velger en Ethereum-programvare lommebok for å lagre nøklene, må du kjøre den programvaren et sted. Du har flere valg:

  • Web lommebøker: lommebokprogramvare du får tilgang til ved hjelp av en nettleser. Desktop lommebøker: Programvare som kjører på en stasjonær eller bærbar datamaskin. I de fleste tilfeller kjører stasjonære lommebøker på datamaskiner som kjører Microsoft Windows, macOS eller Linux. Mobil lommebøker: Ethereum lommebøker for mobile enheter. Den vanligste lommebokprogramvaren kjører på operativsystemene iOS og Android for smarttelefoner og nettbrett.

Du trenger ikke å velge bare en type Ethereum-lommebok. Du kan bruke flere lommebøker, avhengig av dine behov. Nøkler for krypto-eiendeler med høy verdi må beskyttes mer nøye, mens nøkler for krypto-eiendeler med lav verdi kan lagres online for enklere tilgang.

Ethereum lommebøker for maskinvare

Et Ethereum lommebokalternativ som er sikrere enn de fleste programvarelommebøker, er en maskinvarelommebok. En maskinvarelommebok lagrer private nøkler på en fysisk brikke. Du kan koble enheten som inneholder brikken til mange forskjellige typer datamaskiner og mobile enheter, og dermed gi flere måter å få tilgang til tastene på. De fleste maskinvarelommebøker har også fysiske knapper for å administrere tilgang til tastene dine.

Fordelen med en fysisk lommebok er den økte sikkerheten. Du kobler enheten din til en datamaskin bare når du vil ha tilgang til blockchain-eiendelene. Når enheten ikke er tilkoblet, er nøklene dine trygge inne i den fysiske enheten. En angriper må fysisk stjele lommebokenheten din og kjenne tilgangsinformasjonen din for å komme til nøklene dine.

Ulempen med en fysisk lommebok er tapet av bekvemmelighet og overflødighet. Du må koble den fysiske lommeboken til en datamaskin eller enhet hver gang du vil ha tilgang til blockchain-eiendelene. Hvis du ofte får tilgang til eiendeler, kan denne prosessen bli irriterende.

Hvis du mister den fysiske enheten din, kan det hende at du aldri klarer å gjenopprette tilgang til blockchain-eiendelene dine. Av den grunn lager mange fysiske lommebokbrukere minst en sikkerhetskopi av nøklene sine og passer ekstra på å lagre kopiene på et sikkert sted.

Paper Ethereum lommebøker

Den siste typen Ethereum lommebok kan være den sikreste. Som navnet tilsier, er en lommebok bokstavelig talt bare et stykke papir. Etter å ha opprettet en Ethereum-konto og generert nøkler, er en måte å lagre disse nøklene ved å trykke dem på papir. De fleste nøkkelgenereringsalternativer gir deg valget mellom å skrive ut nøklene. Hvis du velger dette alternativet, får du en papirkopi av de private og offentlige nøklene, sammen med en QR-kode for hver nøkkel.

papir Ethereum lommebok

Hver gang du vil ha tilgang til blockchain-eiendelene dine, for eksempel å kjøpe eller selge Ether, kan du enten skrive inn din private nøkkel eller skanne QR-koden. Programvaren du bruker for å få tilgang til Ethereum må selvfølgelig støtte QR-skanning.

Papirlommebøker er bare sikre hvis du holder papiret hemmelig. Forsiktig det papiret. Alle som kan ta tak i papiret, eller til og med ta et bilde av det, kan stjele alle Ethereum-eiendelene dine. Og akkurat som med Ethereum lommebøker, er det lurt å lage en sikkerhetskopi og oppbevare den på et sikkert sted.

Uansett hvilken type Ethereum lommebok du velger, må du sørge for å ta forholdsregler for å holde eiendelene dine trygge.

  1. Personlig økonomiVelge den beste Ethereum lommeboken for deg
Ethereum For Dummies

Av Michael Solomon

Du har mange valg for Ethereum lommebøker. Her lærer du om de mest populære typene. Du kan bruke denne informasjonen til å bestemme hvilken Ethereum lommebok som passer best til dine behov.

Ethereum lommebok

Hvis du etter å ha lest dette ikke er sikker på hvilken som er den beste Ethereum lommeboken, ikke bekymre deg - velg den som ser bra ut og begynn å bruke den. Hvis du senere bestemmer deg for å bytte til en annen lommebok, er prosessen enkel. Og ingen regel tilsier at du ikke kan ha flere Ethereum-lommebøker. (Det er ikke som å stappe flere lommebøker i lommen!)

Programvare Ethereum lommebøker

Programvarelommebøker er ganske enkelt programmer som genererer, lagrer og administrerer nøklene dine. Alternativer er nettlommebøker, stasjonære lommebøker og mobile lommebøker. De to hovedforskjellene mellom alternativer for programvare lommebøker er hvor de løper og hvor de lagrer nøklene dine.

Nettlommebøker for Ethereum

Nettlommebøker er populære for uformell bruk av Ethereum. De er enkle å bruke og gjør tilgangen til tastene dine praktisk. For å åpne Ethereum-lommeboken, trenger du bare en Internett-tilkobling, en nettleser og påloggingsinformasjon.

Ethereum stasjonære lommebøker

Desktop lommebøker er programmer som kjøres på en datamaskin. De fleste stasjonære lommebøker lagrer nøkler lokalt, så du må ha tilgang til datamaskinen din for å åpne Ethereum-lommeboken.

Mobile Ethereum lommebøker

Mobil lommebøker ligner desktop-lommebøker, men programvaren kjøres på mobile enheter. Nøklene dine lagres også ofte på den mobile enheten. En mobil lommebok er et godt alternativ hvis du alltid vil ha nøklene med deg. Ulempen er at hvis du mister mobilenheten din, kan du miste tilgangen til Ethereum-eiendelene dine. (Det er derfor sikkerhetskopier alltid er bra.)

Ethereum lommebøker for maskinvare

Hardware-lommebøker gir et ekstra lag med sikkerhet for nøklene dine fordi de er lagret på en fysisk brikke inne i enheten. De fleste maskinvarelommebøker for Ethereum er USB-enheter. Du får tilgang til tastene dine ved å koble lommeboken til en datamaskin eller en mobil enhet, og deretter kjøre programvare for å få tilgang til tastene.

Avhengig av enheten, kan programvaren være nettbasert eller kjøre lokalt på datamaskinen eller den mobile enheten. Flere programvarelommebøker gir deg muligheten til å integrere med maskinvare Ethereum lommebøker for å gjøre nøkkeloppbevaring enda tryggere.

Å lagre nøklene på din egen enhet betyr at du må gjøre tiltak for å sikre enheten. Vær alltid oppmerksom på enhetens plassering, og bruk alltid en sikkerhetskopi i tilfelle enheten mangler.

Paper Ethereum lommebøker

En papirlommebok er den enkleste typen Ethereum lommebok. Når du har opprettet en konto og generert nøklene dine, skriver du bare tastene på et vanlig stykke papir. Nøklene dine finnes bare på papiret du brukte til å skrive ut dem; du lagrer dem ikke ved å bruke programvare eller på en maskinvareenhet.

Fordelen med et Ethereum-lommebok er at du har suveren kontroll over tastene dine, og ingen andre kan ta på dem. Det er den største ulempen, også. Du må ta ekstra forholdsregler for å lagre en sikkerhetskopi på en sikker måte i tilfelle noe skulle skje med papiret ditt.

Uansett hvilken Ethereum lommebok du velger bør veies nøye mot fordelene, ulempene og til slutt hvordan du planlegger å bruke den.

  1. Personlig økonomi Hva er Ethereum?
Ethereum For Dummies

Av Michael Solomon

Ethereum er en omfattende, desentralisert applikasjonsplattform som utvider utvalget av muligheter utover det som var mulig før blockchain-teknologi. Så, hva skiller det fra andre desentraliserte plattformer? Her er litt Ethereum-bakgrunn.

Vi presenterer Ethereum

Bitcoin var den første blockchain-teknologien. Det var revolusjonerende og definerte den første mye brukte digitale valutaen, kalt cryptocurrency. Kryptodelen av navnet viser til bruk av kryptografiske hasjer for å sikre integriteten til blockchain. Den delte hovedboken oppbevarer bokstavelig talt en kopi av hver cryptocurrency-transaksjon som blir bekreftet av alle noder.

Ved å bruke denne tilnærmingen opprettet bitcoin en permanent registrering av hver utveksling av deres cryptocurrency. Og fordi kontoeiere bare blir identifisert av en adresse, har bitcoin alltid hatt glede av et mål av anonymitet.

Selv om bitcoin-adresser ikke er koblet direkte til folk, har mange utvekslinger poster over identiteter som er relatert til adresser. På et tidspunkt må du bytte cryptocurrency for ekte valuta. Det omstillingspunktet er der mange politimyndigheter fokuserer når de prøver å spore opp kriminelle som bruker cryptocurrency.

Etter hvert som bitcoin ble mer og mer populært, begynte forskere å se flere applikasjoner for blockchain-teknologi utover cryptocurrency. I 2013 publiserte Vitalik Buterin, som er grunnlegger av Bitcoin Magazine, en whitepaper som foreslo en ny, mer funksjonell blockchain-implementering. Dette nye forslaget var til Ethereum blockchain. Etter å ha fått interesse og tiltrukket seg teknisk og økonomisk støtte, ble Ethereum Foundation, en sveitsisk ideell organisasjon, stiftet og ble utvikler av Ethereum.

Ethereum ble ikke opprettet bare for å utveksle cryptocurrency. Faktisk var det fra begynnelsen designet for å være annerledes. Kjernefunksjonene i Ethereum er den smarte kontrakten og eteren.

Ether er det opprinnelige cryptocurrency som Ethereum støtter, selv om du kan lage dine egne symboler for å utveksle verdi i mange andre former. Smarte kontrakter gir et utførelsesmiljø som sikrer integritet på tvers av alle noder. Enhver kode som kjøres på en node kjøres på samme måte på alle noder. Denne garantien gjør det mulig å distribuere et bredt spekter av applikasjoner i ikke-tillitsfulle miljøer.

De grunnleggende garantiene Ethereum gir støtte for mange typer verdiutveksling uten bekymring for svindel, sensur eller involvering fra en tredjepart. Når du samhandler med en Ethereum-applikasjon, trenger du ikke å stole på noen formidler for å megle transaksjonene dine. Du trenger ikke en bank, grossist eller transaksjonsmegler for å gi tillit. Som et resultat av Ethereums disintermediering, kan du ofte fullføre transaksjoner raskere, med langt lavere serviceavgifter og uten å kreve godkjenning fra eksterne myndigheter.

Mens gamle løsninger for data og prosessdeling krevde tredjeparts myndigheter for å håndheve integritet, gir Ethereum prosess- og dataintegritet, sammen med disintermediering. Mulighetene begynner bare å bli utforsket.

Utforske Ethereums konsensus, gruvedrift og smarte kontrakter

Ethereum gir integritet i måten det implementerer uforanderlighet og smarte kontrakter. Uforanderlighet er ikke egentlig en blockchain-garanti. Du kan endre data i hvilken som helst blokkering - selv etter at andre blokker er lagt til i blockchain. Så snart du endrer en blokkering, mislykkes den blokken og alle påfølgende blokker imidlertid integritetskontroller, og noden din er ikke synkronisert. I stedet for å si at blockchain er uforanderlig, er det mer nøyaktig å si at eventuelle endringer (mutasjoner) til blockchain blir lett og umiddelbart oppdaget.

Ethereum er basert på demokrati. Hver node får en like god stemme. Hver gang noder får en ny blokk å legge til i blockchain, validerer de blokken og dens transaksjoner, og stemmer deretter om de skal godta eller avvise blokken. Hvis flere forskjellige blokker sendes inn av forskjellige noder, kan bare en av blokkene få stemmer fra et flertall. Blokken som får mer enn halvparten av stemmene på nettverksnoden, blir med i blockchain som den nyeste blokken.

Et av de første problemene er å bestemme når en ny blokk er klar for blockchain. Når det sendes inn for mange motstridende blokker, avtar stemmereprosessen. Ethereum gjør det vanskelig å legge til nye blokker for å holde antallet nye blokkeringer og for å gjøre avstemningen raskere. Ethereum bruker en konsensusprotokoll kalt Proof of Work (PoW), som setter reglene for å validere og legge til nye blokker. PoW gjør tilførsel av blokker til blockchain vanskelig, men lønnsom.

Ethereum definerer eter som cryptocurrency. Du kan overføre eter mellom kontoer eller tjene det ved å gjøre det harde arbeidet med å legge til blokker i Ethereum blockchain. Ethereum PoW-mekanismen krever at noder finner et tall som, når det kombineres med blokkens overskriftsdata, produserer en kryptografisk hashverdi som samsvarer med det nåværende målet, som er en verdi som blir justert for å holde ny blokkproduksjon i jevn hastighet.

Det er vanskelig å finne en hashverdi som samsvarer med det nåværende målet. Du må prøve i gjennomsnitt mer enn en firemannsverdier for å finne den rette. Det er poenget. Å bruke en PoW-mekanisme gjør det så vanskelig å sende inn en blokk at færre blokker blir sendt inn, noe som reduserer antall kollisjoner. Noden som finner riktig verdi får en liten eterbetaling for innsatsen. Denne prosessen kalles gruvedrift, og noden som vinner prisen er den blokkerens gruvearbeider.

Gruvedrift regulerer hastigheten som nye blokker blir sendt inn som kandidatblokker, og resulterer i et nummer som er lett å validere. Det er vanskelig å finne riktig nummer for å løse puslespillet, men det er raskt og enkelt å bekrefte tallet. Et annet interessant aspekt ved gruvedrift er at overskriften på hver blokk inneholder en hasj fra den forrige blokken. Ethereum-noder bruker hasj for å enkelt oppdage uautoriserte blokkeringsendringer. Hvis en blokkering endres, stemmer ikke hash-resultatet, og blokken blir ugyldig.

Gruvedrift cryptocurrency er også en måte å tjene penger på ved hjelp av blockchain-teknologi. Gruvedrift har blitt konkurransedyktig, og de fleste av dagens gruvearbeidere investerer i høyytelses-maskinvare med flere GPU-er for å utføre de kompliserte operasjonene. For å holde gruveprosessen rettferdig bruker Ethereum en kompleksitetsverdi som gjør gruveprosessen enda hardere etter hvert som gruvearbeidere går raskere. Ved å justere kompleksiteten kan Ethereum regulere den nye blokkeringsfrekvensen til i gjennomsnitt en ny blokk hvert 14. sekund.

Limet som holder Ethereum-miljøet sammen er den smarte kontrakten. Ethereum er mye mer enn bare en økonomisk hovedbok, og smarte kontrakter gir mye av dens rike funksjonalitet. Hver Ethereum-node kjører en kopi av den virtuelle Ethereum-maskinen (EVM).

EVM kjører smartkontrakode på en måte som garanterer at smarte kontrakter kjører på samme måte på alle noder og produserer samme output. Å kjøre smart kontraktkode er ikke valgfritt. Smarte kontrakter utføres basert på spesifikke regler og kan ikke subverteres eller stoppes. EVMs smarte kontraktgarantier gir en stabil plattform for automatisert transaksjonsbehandling som du kan stole på. Smarte kontrakter gir Ethereum-miljøets primære kraft.

En av de kjente svakhetene med programvare er at angripere noen ganger kan omgå kontrollene og utføre utilsiktede handlinger. Den typen angrep er vanskeligere i Ethereum, først og fremst på grunn av den smarte kontraktgjennomføringen. Angripere kan ikke direkte angripe blockchain og gjøre uautoriserte endringer fordi slike endringer vil bli oppdaget umiddelbart

Den neste mest sannsynlige angrepsvektoren er det smarte kontraktsgrensesnittet til blockchain-dataene. Ethereum garanterer at smart avtalekode, som er oversatt til bytecode før den skrives til blockchain, kjøres på alle EVM-instanser på samme måte. EVM bestemmer også når kode kjøres og hvilken kode som kjøres. Angripere har få muligheter til å utnytte smart avtalekode, noe som gjør Ethereum til et enda sikrere miljø.

Ethereum-plattformen som helhet tilbyr muligheter som strekker seg utover dagens bruk av blockchain.

  1. Personal Finance10 Designprinsipper for distribuerte Blockchain-apper
Ethereum For Dummies

Av Michael Solomon

Blockchain-teknologi er en forstyrrende, transformativ tilnærming til måten vi administrerer data på. Det lover å endre radikalt hvordan vi utfører oppgaver som håndterer sensitiv informasjon i delte miljøer. Kritiske operasjoner på sensitive data krevde historisk en sterk sentral myndighet for å overbevise dataleiere til å stole på miljøet nok til at de kan administrere dataene sine.

En av de vanskeligere hindringene som hver blockchain-app må overvinne er å bygge tillit. Brukere må stole på at programvaren som kjører på blockchain inkluderer solide tiltak for å gi sikkerhet og beskytte personvernet før de vil levere sensitive personlige og forretningsdata.

Du kan gå langt mot å bygge denne tilliten ved å følge flere grunnleggende designretningslinjer. Hvis du følger de ti designmålene for blockchain-applikasjoner som du finner her, vil du hjelpe deg med å oppmuntre brukerne dine til å stole på applikasjonen din nok til å bruke den og stole på den.

Design blockchain-apper for tillit

En av de viktigste grunnene til at de fleste organisasjoner beveger seg mot blockchain-løsninger er deres evne til å dele data mellom noder som ikke stoler på hverandre. Hvis du tenker på det, setter det virkelig en høy bar for dApp-utviklere. For å utvikle en vellykket dApp, må du overbevise brukerne dine om å stole på programvaren deres med dataene sine når du sender den til et stort antall andre noder som du ikke har tillit til (og de heller ikke stoler på).

Tillit er normalt (men ikke alltid) transitive. (Ja, du er på vei tilbake til matteklasse. Hvis A = B og B = C, så A = C. Du er velkommen.) Dette er den vanligste måten vi som mennesker takler tillit på.

Hvis du stoler på Mary, og Joe stoler på deg, så har Joe sannsynligvis det bra med å stole på Mary. La oss anta at du er matkritiker. Joe stoler på at du anbefaler god mat. Hvis du legger ut at du virkelig liker Marias ferskenpai, vil det være mer sannsynlig at Joe prøver sin ferskenpai siden Joe stoler på din smak i maten. Men det sporer ikke med et tillitsløst miljø. Når det gjelder blockchain dApps, stoler brukerne på deg, men du stoler ikke på andre i ditt eget blockchain-nettverk.

Ditt første designmål er et mål på høyt nivå som du må beholde som en topp motivasjon for alle beslutninger. Mange av de påfølgende designmålene støtter dette: Design dine apper for tillit. Dette målet betyr at du ønsker å vurdere hva brukerne dine vil, og hva som får dem til å føle at de kan stole på dApp-en din.

Brukere må vite at du vil ta vare på dataene deres. DApp-en din skal ikke skjule noe og skal gjøre det enkelt å sjekke opp hva som skjer. Det skal tydelig kommunisere god og dårlig informasjon og gi en generell følelse av velvære. Selv om det er en høy ordre for programvare, er det nødvendig å bygge tillit.

Det viktigste ved å designe for tillit er å forstå hvem brukerne dine er, og hva som får dem til å føle seg komfortable. Kort sagt, kjenn brukerne dine. Vet hva de vil, og hvordan du kan overbevise dem om at du ikke kommer til å kaste bort tiden deres eller dra nytte av deres tillit til deg.

Håndheve konsistensen i blockchain-apper

En av de enkleste måtene å unngå forvirring er å begrense alternativene og motstridende opplevelsene i dAppsene dine. Microsoft lærte for lenge siden kraften i konsistens. De utviklet standarder for hvordan de skal samhandle med brukere, og utforsket og definert alle aspekter ved å lage et brukergrensesnitt. Det er grunnen til at Microsoft-applikasjoner føler seg lik hverandre.

Hvis du har brukt en Microsoft-applikasjon, kjenner du igjen det generelle brukergrensesnittet i andre Microsoft-applikasjoner. (Og hvis du har brukt Microsoft-produkter på en stund, vil du huske den enorme forstyrrelsen Microsoft forårsaket da de konverterte til et flisebasert brukergrensesnitt - i stor grad fordi alle var så komfortable med det gamle Microsoft-grensesnittet.)

Hvis du for eksempel vil finne den nåværende versjonen av et Windows-program du kjører, kan du nesten alltid klikke eller trykke på Hjelp, og deretter klikke eller trykke på menypunktet Om på Hjelp-menyen.

Bildet under viser menypunktet Om i VS-kode. Menypunktet About finnes i stort sett alle Windows-applikasjoner og viser grunnleggende informasjon, inkludert versjonsnummer, til programmet du kjører. Det enkle eksempelet på brukergrensesnittkonsistens gjør det enkelt for alle å finne applikasjonsinformasjon uten å måtte jakte på den.

VS-kode Ethereum

Følgende bilde viser dialogboksen Om i VS-kode. Du finner utgivelsesinformasjon for de fleste Windows-applikasjoner ved å klikke eller tappe Hjelp → Om. Det er kraften i konsistens.

VS-kode om dialogboks

DAppene dine bør definere klare standarder for hvert brukerinteraksjon. Når du ber brukerne dine gi innspill, gjør du det på samme måte i hele dApp-en. Når en bruker oppgir en produkt-ID flere steder, skal inntastingsfeltet se det samme ut på hvert sted. Bruk de samme fargene, skriftene og inndatametoden for å gi dApp-en et jevn utseende og preg.

Et annet område der du finner konsistens i GUI-apper er snarveier. Du kan nesten alltid bruke Ctrl-C til å kopiere uthevet tekst og Ctrl-V for å lime inn den teksten på et nytt sted. Konsekvente tastatursnarveier gjør det enda enklere å lære og bruke ny programvare.

Standardiser alle utdata på samme måte. Feilmeldinger og varsler er hovedområder for standardisering. Når det er mulig, bruk vanlige inngangs- og utgangslag, slik at all inngang og utgang bruker samme sett med funksjoner. Hele dApp vil se mer konsistent ut.

Du prøver å oppmuntre brukerne dine til å fortsette å bruke dApp. En dApp som presenterer et konsistent brukergrensesnitt er en som bygger tillit. Konsistens gjør det også lettere for brukerne dine å lære å bruke programvaren din, og en applikasjon som er lett å lære er en som brukerne sannsynligvis vil foretrekke og godta.

Fjern tvil fra blockchain-apper med åpenhet

En av grunnene til at brukere mistro en applikasjon er at de ikke virkelig forstår den. Brukerne gir dataene sine, men er ikke sikre på hva som skjer etter det. De vet ikke hvor dataene deres går, og om de fremdeles er et sted i systemet. Denne følelsen av å sette data i en svart boks kan være enda sterkere med blockchain dApps.

Når blockchain-teknologien blir mer populær, øker den generelle bevisstheten om funksjonene. Det betyr at mange av brukerne dine vil vite at dApp-en din sender dataene sine til mange andre datamaskiner, potensielt over hele verden. Et av hindringene du må overvinne er å overbevise brukerne dine om at du beskytter deres sensitive data.

Kommuniser tydelig hvilke data din dApp trenger, hvorfor den trenger hver type data, og hva du gjør med den. Du trenger ikke å formidle denne informasjonen hver gang du ber om data, men den skal være tilgjengelig første gang du samhandler med en ny bruker og deretter på forespørsel.

Du bør også gjøre det enkelt for brukerne å se hva de har gjort (og hva dApp-en din har gjort med dataene sine.) Å gi åpenhet på hvert trinn gir brukerne en følelse av tillit.

Gjør det enkelt for brukerne dine å bore ned og få bekreftet handlinger. Dette nivået av åpenhet gir brukerne tilliten til at dApp-en din gjør det den hevder å gjøre, og kan redusere bekymringen for at dApp-en din skjuler noe. Avhengig av brukerens bekymringsnivå og dine egne designretningslinjer, kan du bygge gjennomsiktighet i hver arbeidsflyt eller inn på forespørsel-funksjoner for å la strømbrukere drille seg ned når du vil.

Gi tilbakemelding, veiledning og still forventninger til blockchain-appene dine

Det neste designmålet du trenger for din blockchain-app er å gi tilbakemelding og veiledning og stille forventninger. Dette målet er en logisk utvidelse av åpenhet. Mens gjennomsiktighet gjør transaksjons- og arbeidsflytdetaljer lett tilgjengelig for brukere, setter innstillinger for tilbakemelding, veiledning og forventning innsyn i den normale arbeidsflyten. I stedet for bare å la brukerne se hva som skjedde, bør du presentere dem med informativ tilbakemelding på hvert viktige trinn i arbeidsflyten.

For eksempel, hvis du er en produsent og nettopp har overført eierskapet til en ny traktor til en avsender, kan den nye forsyningskjeden dApp gi deg en melding "Du har nettopp overført traktor med serienummer ABC-12345 til Unified Shipping - Transaction number 456778 . ”Selvfølgelig vil du sannsynligvis få flere detaljer for en kapitaloverføring, men du får ideen. DApp ga tilbakemeldinger som egentlig sier “Hei, god jobb. Dette er hva du gjorde. Informativ tilbakemelding er det første trinnet i å overbevise brukere til å stole på dApp-en din. Tilbakemeldingene gir dem forsikring om at de bruker programvaren riktig.

Du kan utvide tilbakemeldingseksemplet for å informere brukere om neste trinn også. I traktoreksemplet kan tilbakemeldingsmeldingen også inneholde en melding “Vil du slippe tittelen nå?” Med muligheten til å klikke eller trykke på en knapp for å gå til neste trinn. Sluttoppgaver som denne hjelper deg med å sikre at brukerne forstår riktig arbeidsflyt og gir dem inntrykk av at programvaren hjelper dem med å gjøre jobben sin riktig. Når programvare gjør brukerne mer effektive, går det langt mot å bygge tillit. Alle elsker programvare som får dem til å se bra ut!

Håndter feil i blockchain-appen din med klassen

Innse det, feil skjer. Og noen ganger er feilene store. Forhåpentligvis fant du alle de store feilene i programvaren din under testing. (Du testet uttømmende, ikke sant?) Hvis du gjorde det, vil de fleste feilene du møter i produksjonen være brukerfeil.

Når du håndterer brukerfeil, kan du prøve å unngå varslinger som på en subtil måte sier “Du har rotet!” Fokuser på å løse situasjonen, ikke legge skylden.

Du husker sannsynligvis å bruke din første GPS-enhet i en bil. I de første dagene av GPS, hvis du avviket fra den foreslåtte ruten, hørte du en ganske streng "Omretting" -melding. Stemmen kunne like godt sagt "Du kommer ikke dit jeg fortalte deg. Hold på, så skal jeg fortelle deg hvordan du kommer tilbake til det jeg fortalte deg i utgangspunktet. ”Feilmeldinger skal informere brukerne om hva som har skjedd, men fokusere på hva de skal gjøre videre. Ja, GPS-en gjorde det, men det var generelt etter en subtil skjenking. Ikke skjenn brukerne dine.

På den annen side, ikke bruk for mye tid på å fokusere på feil. For overdrevne feilmeldinger kan være forvirrende og ta for lang tid å lese. Kom til poenget. Design alltid feilhåndtering fra brukerperspektiv. Gi brukerne alt de trenger for å svare raskt og bestemt på feil, og ikke noe mer.

Feilmeldinger hjelper sluttbrukere med å forstå hva som skjer, og hjelper også supportpersonell når de feilsøker. Design ditt feilmeldingssystem slik at det gir nødvendige brukermeldinger samt flere ordførte meldinger på forespørsel for feilsøking og undersøkelser.

Husk at blockchain er uforanderlig, så eventuelle feil som gjør det til en blokk vil alltid være der. DApp-en din skal løse brukerproblemer med data før du lagrer disse dataene i blockchain. Trikset for å håndtere feil er å veilede brukere til riktig løsning uten å bremse dem. Det krever oppmerksomhet til hvem brukerne dine er, hvordan de bruker dApp og hva de trenger for å løse et problem. Et av designmålene dine bør være å tilby feilhåndtering som tilfredsstiller brukernes behov i alle tilfeller.

Design funksjoner i blockchain-appen din som fokuserer på brukerhandlinger, ikke data

Funksjoner gir handlingene til dine smarte kontrakter. En måte å se på smarte kontrakter på er at de består av data (substantiv) og handlinger (verb). Innramming av smarte kontrakter på denne måten gjør det lettere å beskrive og designe dem, og resulterer generelt i en applikasjon som flyter godt fra et brukerperspektiv.

Fordi alle applikasjoner eksisterer for å oppfylle noen brukers krav, er det fornuftig å designe programvare i lys av brukeren. Hvis en bruker ønsker å opprette en ny ordre på høyeste nivå, bør du starte med en funksjon som heter createNewOrder (). Du kan endre ting når du avgrenser designen din, men å starte med et brukerperspektiv bidrar til å opprettholde ektheten med programvarens mål. Å designe tekniske komponenter som oppfyller brukerens mål, hjelper også til å unngå å avvike for langt fra høye funksjonsmål.

Mange av dagens programvareutviklingsorganisasjoner er avhengige av metoder som begynner med brukerhistorier. Som utvikler blir du bedt om å produsere programvare som oppfyller et krav som ser ut som "Som bruker vil jeg ____." Å starte din smarte kontrakt med en funksjon som samsvarer med hva brukerne vil gjøre (det vil si -et tomt fra foregående uttalelse), er en god designstrategi for å lage brukervennlig programvare.

Hver funksjon trenger ikke å kartlegge direkte til brukerhandlinger, men høynivåfunksjonene dine skal se ut som om de tilfredsstiller brukerhistoriene. Du vil alltid trenge oppgaveorienterte eller dataorienterte funksjoner på lavere nivå for å utføre de tekniske trinnene til enhver oppgave. Det er greit hvis disse funksjonene ikke kartlegger direkte til brukerhistorier. Men funksjonene på lavere nivå skal alle spille deler i funksjonene som brukerne samhandler med. Som en veldig generell tommelfingerregel, bør de offentlige funksjonene dine ligner mye på brukerhistorier.

Lagre blockchain-appdata basert på brukerhandlinger, ikke datastrukturer

Brukere kan ikke samhandle direkte med data, men du bør fortsatt prøve å organisere data basert på brukernes krav. Dette generelle målet er mer en tommelfingerregel. Bruk dette målet når du først utformer dine krav til smarte kontraktdata. Du vil sannsynligvis trenge å avgrense designet og endre det, men hvis du starter med data som er tilordnet brukerforespørsler, hjelper programvaren din å være tro mot brukernes krav.

Hvis du for eksempel designer programvare for å opprette og vedlikeholde ordrer, kan du starte med en Solidity struct-setning som definerer en ordre slik en bruker ser den. En ordre kan være en samling felt som beskriver den, for eksempel ordrenummer, ordredato, kundeordre, instruksjoner og en liste over ordrelinjer. Ordrelinjer inneholder felt som produktnummer, pris og mengde. Du kan definere dette som en struktur av variabler og en liste over ordrelinjestrukturer.

Uansett de tekniske detaljene for hvordan du definerer data, er hovedhensikten med dette målet å vurdere hvordan brukere vil bruke data, og prøve å presentere dataene på den måten. Hvis du gjør ordrer direkte tilgjengelige for brukere for å fremme gjennomsiktighet i programvaren din, vil du gjøre ordrene så enkle å få tilgang til som mulig. Du ønsker ikke å fremme åpenhet og deretter få brukere til å jobbe hardt for å finne ut hva dataene dine betyr. Å gjøre data enkle å få tilgang til og forstå vil bygge enda mer tillit.

Hold blockchain-appen enkel

Du har mange ting du bør tenke på når du designer en dApp. Selv om det å fokusere på brukere skal bidra til å dirigere designbeslutninger, er tendensen å forsøke å dekke alle brukerbehov. Hvis du ikke har sjekket det, vil dette ønsket om å gjøre alt gjøre programvaren din for komplisert og vanskelig å bruke. Å gi brukere mange valg høres ut som et godt mål med det første, men en overveldet bruker vil ikke like (eller bruke) programvaren din.

Generelt ordtak "holde det enkelt, dumt" er fremdeles relevant. Det er en streng påminnelse om at enkelhet er langt smartere enn kompleksitet. Du har kanskje hørt at "et forvirret sinn alltid sier nei", men du vil at brukerne dine skal godta og bruke dApp-en din. Du vil at de skal finne at programvaren din gjør dem mer effektive og effektive. For å oppnå disse målene, må du gjøre forståelse og bruk av programvaren enkel og oversiktlig.

Enkelhet starter med brukergrensesnittet, men det stopper ikke der. Alle aspekter av applikasjonens funksjonelle og datadesign må være så enkle som mulig. Ikke prøv å gjøre for mye. I stedet bestemme hva brukerne dine trenger og vil mest, og gjør det. Prioriter funksjonaliteten som gjør at programvaren din skiller seg ut. Å holde det enkelt krever mer arbeid, men resulterer ofte i et fokusert, konsistent produkt som brukerne vil bruke.

Forvent at blockchain-tilgang vil være dyr

Et annet praktisk designmål som vil hjelpe deg å unngå omarbeiding etter utvikling er å late som om det er dyrt å lagre data på blockchain. For i virkeligheten er det det. For mange som begynte å programmere langt tilbake da Y2K var langt fremover, er lagring mye billigere i dag enn det pleide å være. De fleste utviklere i dag trenger ikke å bekymre seg for datastørrelse eller hvor de skal lagres. Blockchain endrer alt det. Nå, i stedet for å ha mange billige og raske lagringsplasser tilgjengelig, må du betale mens du går.

Dyrt lagring er ikke en ny ting i blockchain, men det kan være lett å glemme. Hvis du påminner deg selv om at lagring tidlig er dyrt, vil du sannsynligvis tenke grundigere på lagringsalternativer.

For eksempel, må du lagre byen og oppgi hvor et produkt vil bli sendt? By og stat er begge avhengig av postnummer (eller postnummer i mer generiske innstillinger.) Du kan lagre postnummeret i leveringsadressen, og deretter bare slå opp den tilsvarende byen og staten ved hjelp av et online API ved kjøretid.

Å skille data som postnummereksempel kan ikke være fornuftig for applikasjonen din, men du vil alltid ha fordel av å tenke gjennom alternativene for datalagring. De dyreste lagringsalternativene er nesten alltid et resultat av dårlig designplanlegging. Ikke design blockchain dApps på samme måte som du designer tradisjonelle databaseapplikasjoner. De er bare ikke de samme. Design med et annet tankesett, og du vil ende opp med et bedre programvareprodukt.

Hold deg unna blockchain-app-brukerens måte

Et godt blockchain-program oppfyller de viktigste brukerbehovene på en måte som hjelper dem å være mer effektive og effektive. Imidlertid bør designen din ikke bare vurdere hva applikasjonen din gjør, men også hva den ikke gjør.

Hver applikasjon har begrensninger og begrensninger. Dette designmålet fokuserer på en annen ting som applikasjonen din ikke gjør: Den kommer ikke på brukerens måte. Enkelt sagt skal applikasjonen din hjelpe brukere, ikke senke dem. Brukergrensesnittet ditt skal hjelpe brukerne til å gjøre jobben sin, og overgangene mellom brukergrensesnittelementene skal være intuitive og lærerike når det er nødvendig.

Noen ganger må du ta data fra brukere og deretter lagre dem på blockchain. (Du husker at dette er dyrt, ikke sant?) Fordi du vet at du kommer til å få brukere til å betale for å lagre data på blockchain, må du ikke få dem til å vente på det også. Når det er mulig, la brukerne gjøre noe produktivt mens funksjonen som håndterer deres data fungerer i bakgrunnen. Dette kan være et bra sted i koden din å bruke hendelser.

Gjør alt du kan for å unngå å bli et hinder for brukerne dine. Ingen liker å vente. Design med tanke og produktet ditt vil ha en mye bedre sjanse til å møte dine brukeres behov.