Denne tekst er automatisk oversat og kan derfor afvige fra originalen. Der kan ikke drages rettigheder på baggrund af denne oversættelse.
Tag fat på det!
Kom i gang: hvad har du brug for?
For at oprette en simpel blockchain kan du bruge software, der er gratis tilgængelig på internettet. Denne software fungerer normalt på Windows- og Mac-computere. I dette eksempel vil vi bruge Ethereum-platformen. Ethereum er en offentligt tilgængelig blockchain - brugen af blockchain betales med digital valuta kaldet 'ether'. I dette eksempel bruger vi softwaren under Ethereum-blockchain til at oprette vores egen private klon.
Installér klienten
For at komme i gang har du brug for en klient. Dette er et stykke software, der styrer blockchain-kommunikation med andre computere ('noder'). Ved at starte klienten deltager du i blockchain og kan gemme nye kontrakter i blockchain. Download 'Go Ethereum'-klienten fra denne side og installer den. Når dette er gjort, er det godt at kontrollere, om klienten er korrekt installeret. For at gøre dette skal du (i Windows) gå til Startmenuen, 'Kør', og skrive 'cmd' efterfulgt af 'OK' (Mac-brugere åbner Terminal-programmet via mappen Applications og derefter programmet 'Terminal'; de øvrige instruktioner er de samme). Skriv 'geth version' efterfulgt af Enter i det vindue, der så vises. Hvis alt er gået godt, vises en oversigt over den installerede version af Go-Ethereum.

Starten på kæden: genesis i blockchain
Nu hvor softwaren er installeret, er det tid til at begynde at opbygge blockchain. Som tidligere beskrevet består en blockchain af en kæde af 'blokke'. Den første blok kaldes 'genesis-blok' og er speciel, fordi den første blok stoles på af alle deltagere uden yderligere kontrol. Alle blokke, der følger efter genesisblokken, er en del af blockchainen.
Først skal du downloade filen genesis.json og placere den på skrivebordet. Denne fil beskriver, hvordan genesisblokken skal se ud. Kør derefter følgende kommando i kommandoskærmen:
geth -datadir %USERPROFILE%/Desktop/data -networkid 3336 init %USERPROFILE%/Desktop/genesis.json

Hvis alt er gået godt, vises en meddelelse om, at genesisblokken er blevet oprettet korrekt. Der vises nu en 'data'-map på skrivebordet - her gemmer klienten alle data, der er nødvendige for at deltage i blockchain.
Når genesisblokken er oprettet, er det tid til at starte blockchainen! Brug følgende kommando til dette:
geth -datadir %USERPROFILE%\Desktop\data -ipcpath ./geth.ipc -rpc -rpccorsdomain "*" -networkid 3336

Når meddelelsen 'IPC endpoint åbnet' vises, er klienten klar til brug. Du kan stoppe klienten ved at trykke på 'Ctrl-C' i kommandoskærmen. Nu er det tid til at begynde at bruge blockchainen faktisk. Dette kan gøres på flere måder; først kan du få adgang til blockchainen via 'konsollen'. Dette er et miljø, hvor du kan udføre kommandoer på blockchainen. Lad klienten køre og åbn et nyt kommandovindue (Start, Kør, cmd eller Terminal på Mac) og skriv følgende kommando:
geth attach \\.\pipe\geth.ipc
Hvis alt er korrekt, vises "Welcome to the Geth JavaScript console!" og nogle versionsnumre. Først skal vi oprette en konto - med en konto får du adgang til blockchainen. En konto er sikret med en adgangskode. Ved oprettelse af en konto angiver du denne adgangskode. Opret en ny konto med følgende kommando:
personal.newAccount()
Derefter skal du hver gang klienten genstarter, åbne kontoen ('uncloak'). Dette kan gøres med følgende kommando (denne kræver den tidligere valgte adgangskode):
personal.unlockAccount(personal.listAccounts[0])
For at få klienten til at tilføje blokke til kæden skal der 'mines'. Du starter miningsprocessen på følgende måde:
miner.setEtherbase(personal.listAccounts[0]) miner.start(1)
Da mining kræver en del regnekraft, vælger vi her at begrænse hastigheden - tallet '1' angiver, at kun én processor i din computer bruges til mining. I et 'rigtigt' netværk vil du udnytte al regnekraften. Når du starter mining for første gang, vil du se, at der går lidt tid, før der faktisk vises blokke (i klientens skærm vises der et antal gange "Generer DAG"). Derefter vil du forhåbentlig se en blok vises hvert par sekunder:

Da det er indstillet i genesisfilen, at miningsprocessen af blokke er let, vises der hurtigt nye blokke. I et 'rigtigt' blockchain-netværk er mining sværere, og blokkene vises langsommere. Men for at teste en blockchain er det godt, når blokkene vises hurtigt - dine smarte kontrakter bliver derefter behandlet hurtigere.
Du kan nu forlade konsollen ved at skrive 'exit'. Det er dog ikke skadeligt at lade konsollen stå åben lidt længere.
Skriver smarte kontrakter
For at skrive smarte kontrakter og placere dem i blockchainen, bruger du programmeringsmiljøet Solidity. Download Solidity via dette link - udpak zipfilen og dobbeltklik på filen 'index.html'. Hvis alt er gået godt, vises et tomt tekstfelt:

Før jeg kan fortsætte, skal vi fortælle Solidity-editoren, at den kan kommunikere med vores egen blockchain (via vores egen klient). For at gøre dette skal du gå til fanen 'Contract' og vælge 'Web3 provider' under 'Select execution environment'. Klik derefter dig igennem alle meddelelserne.
Du er nu klar til at skrive din første smarte kontrakt! Vi vil undersøge forskellige smarte kontrakter nærmere i de kommende artikler. Herunder er en meget simpel kontrakt, der grundlæggende ikke gør noget, men som vi kan bruge til at teste, om blockchainen fungerer:
pragma solidity ^0.4.0; contract Hello { address public owner; function Hello() { owner = msg.sender; } // No payments can be sent function () { throw; } }
Hvad står der her? Den første linje angiver egentlig bare versionen af programmeringssproget, vi ønsker at bruge (0.4.0). Herefter starter kontrakten ("contract Hello"). Linjen 'address public owner' angiver, at der i denne kontrakt er gemt én data, nemlig adressen ('kontonummeret') på den person, der oprettede kontrakten. 'function Hello' angiver, hvad der skal ske, når denne kontrakt oprettes. Det eneste, vi gør nu, er at gemme, hvem der oprettede kontrakten, i det tidligere nævnte adressefelt. Til sidst finder vi nogle linjer for at sikre, at der ikke kan overføres blockchain-penge til kontrakten.
Koden til en kontrakt skal betragtes som en blåprint - du kan 'instantiere' én eller flere kontrakter, der fungerer i henhold til koden (ligesom at der i verden af 'normale' kontrakter for eksempel kan indgås flere 'købsaftaler', der omhandler forskellige huse, men ellers ser ens ud i form).
For at oprette en ny kontrakt skal du i Solidity klikke på 'Create' på fanen 'Contract'. Det vil sandsynligvis stå 'venter på, at transaktionen publiceres'. Der kan vises en fejlmeddelelse - i så fald kan det være, at din konto igen er 'låst'. I så fald skal du i konsollen igen køre kommandoen 'personal.unlockAccount(personal.listAccounts[0]))'. Hvis alt er gået godt, vises til sidst en blok 'Untitled:Hello at' efterfulgt af et langt tal. Dette tal er adressen på kontrakten, faktisk kontraktnummeret. Med dette nummer kan du udføre specifikke handlinger med kontrakten - dette vil vi vende tilbage til senere. I blokken selv finder du kontraktens egenskaber tilbage, inklusive ejerens kontonummer. For nu stopper vi her - du har lavet din første smarte kontrakt!

Til sidst
På baggrund af din egen blockchain kan du i princippet opbygge alle slags applikationer baseret på smarte kontrakter. Det betyder dog ikke nødvendigvis, at det er klogt at bruge din egen blockchain til dette formål. Det første spørgsmål, du skal stille dig selv, er, om brugen af en blockchain virkelig er nødvendig. Når alle parter, der skal udveksle information og lave aftaler med hinanden, har fuld tillid til hinanden, er en 'simpel' delt database faktisk tilstrækkelig. Hvis du alligevel vil bruge en blockchain, er det klogt at tilslutte dig eksisterende blockchains: disse har massen til at maksimere fordelene ved blockchains.