Smarta blockkedjekontrakt med Solidity · Lektion

Varför uppgraderingsbara kontrakt?

Förstå varför uppgraderingsbarhet behövs i smarta kontrakt för buggfixar, funktionsförbättringar och projektets långsiktiga livskraft.

Lektion 1 av 411 steg

Varför uppgraderingsbara kontrakt? är en gratis lektion i Smarta blockkedjekontrakt med Solidity på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Smarta blockkedjekontrakt med Solidity, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Smarta blockkedjekontrakt med Solidity innehåller totalt 4 lektioner.

Smartkontrakt: oföränderlighet

Smart contracts är program som lagras på en blockkedja och körs när förutbestämda villkor är uppfyllda. De är kända för sin oföränderlighet – när de väl har distribuerats kan koden inte ändras.

Denna oföränderlighet är en central säkerhetsfunktion som säkerställer att reglerna inte kan ändras efter att en överenskommelse har ingåtts.

Oföränderlighetens utmaning

Även om oföränderlighet skapar förtroende och säkerhet innebär den en betydande utmaning för den fortsatta utvecklingen.

Tänk på det som att hugga in en design i sten – den blir permanent, men om ni upptäcker ett fel eller vill lägga till något nytt är det oerhört svårt eller omöjligt.

De oundvikliga felen

Även de bästa utvecklarna kan introducera fel eller sårbarheter i komplex kod för smartkontrakt.

I traditionell programvara distribueras en felkorrigering som en uppdatering. Men med oföränderliga smartkontrakt kan ett upptäckt fel leda till permanenta problem, som att medel låses eller att säkerhetsrisker uppstår.

Inga direkta uppdateringar möjliga

När ett standardiserat smartkontrakt har distribuerats till blockkedjan är dess bytekod fast på den adressen. Det finns ingen inbyggd knapp för "uppdatering".

Om ni hittar ett fel är det enda alternativet med ett standardkontrakt att distribuera ett helt nytt kontrakt, migrera alla data och be användarna att byta till den nya adressen. Detta är ofta opraktiskt och riskabelt.

Föränderliga funktioner och behov

Blockkedjeområdet utvecklas ständigt! Projekt behöver ofta lägga till nya funktioner, integrera med nya protokoll eller anpassa sig till förändrade användarbehov.

Ett oföränderligt kontrakt kan inte enkelt få nya funktioner. Det kan hämma innovation och göra det svårt för ett projekt att förbli konkurrenskraftigt och relevant över tid.

Projektets långsiktiga livskraft

För att en decentraliserad applikation (dApp) ska blomstra måste den kunna utvecklas.

Uppgraderingsbarhet säkerställer att ett projekt kan åtgärda problem, införa förbättringar och anpassa sig till feedback från communityn eller nya branschstandarder utan att börja om från början.

Proxy-lösningen (översikt)

Så hur kommer vi runt oföränderligheten? Lösningen finns i ett designmönster som kallas Proxy Pattern.

Detta mönster gör det möjligt att uppdatera kontraktets logik samtidigt som samma kontraktsadress och tillstånd (data) behålls.

Separera logik och data

På en övergripande nivå fungerar proxymönstret genom att kontraktets "logik" (den faktiska kod som utför saker) separeras från dess "lagring" (variablerna och data).

  • Ett proxykontrakt lagrar tillståndet och har den adress som användarna interagerar med.
  • Ett implementeringskontrakt innehåller logiken.

Proxykontraktet vidarebefordrar anrop till implementeringskontraktet.

Viktiga fördelar med uppgraderingsbarhet

Uppgraderingsbara kontrakt erbjuder avgörande fördelar vid utveckling av dApp:er:

  • Felrättningar: Åtgärda säkerhetssårbarheter och logiska fel efter distributionen.
  • Funktionsuppgraderingar: Lägg till nya funktioner och förbättra befintliga.
  • Anpassningsförmåga: Reagera på förändrade marknadsförhållanden och användarbehov.
  • Lång livslängd: Säkerställ projektets långsiktiga livskraft och relevans.

Snabbtest: varför uppgradera?

Vilka av följande är de främsta anledningarna till att uppgraderingsbarhet för smartkontrakt anses nödvändig för komplexa, långlivade decentraliserade applikationer?

Sammanfattning: uppgraderingsbarhetens kraft

Vi har lärt oss att även om smartkontraktens oföränderlighet är en central funktion innebär den också utmaningar för felrättningar och funktionsförbättringar.

Uppgraderingsbara kontrakt, som vanligtvis använder ett proxymönster, löser detta genom att låta kontraktets logik utvecklas över tid och säkerställer därmed säkerhet, anpassningsförmåga och långsiktig livskraft för dApp:er.

Härnäst går vi igenom hur specifika uppgraderingsbara mönster som UUPS implementeras!

Gratis att börja

Lär dig Smarta blockkedjekontrakt med Solidity med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
12
Lektioner
48

Vanliga frågor

Är lektionen ”Varför uppgraderingsbara kontrakt?” gratis?

Ja – hela texten till ”Varför uppgraderingsbara kontrakt?” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Smarta blockkedjekontrakt med Solidity, kan Ni uppgradera till CoddyKit PRO. Kursen i Smarta blockkedjekontrakt med Solidity innehåller totalt 4 lektioner.

Vad lär jag mig i ”Varför uppgraderingsbara kontrakt?”?

Förstå varför uppgraderingsbarhet behövs i smarta kontrakt för buggfixar, funktionsförbättringar och projektets långsiktiga livskraft. Ni övar på Smarta blockkedjekontrakt med Solidity med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Smarta blockkedjekontrakt med Solidity?

Du behöver inga förkunskaper. Utbildningen i Smarta blockkedjekontrakt med Solidity på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.

Hur lång tid tar lektionen ”Varför uppgraderingsbara kontrakt?”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Smarta blockkedjekontrakt med Solidity-lektionen?

Ja. Varje Smarta blockkedjekontrakt med Solidity-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Varför uppgraderingsbara kontrakt?
  2. Implementera UUPS-proxymönstret
  3. Diamond Standard (proxies med flera facets)
  4. Mönstret Transparent Proxy och lagringslayout
← Tillbaka till Smarta blockkedjekontrakt med Solidity