Ergo és crowdfunding
2019. szeptember 6.

Mi az a Crowdfunding?
A crowdfunding egy olyan módszer, amely lehetővé teszi a tőke összegyűjtését egyének közös erőfeszítései révén. A kampányokat jellemzően az interneten indítják, és lehetővé teszik, hogy projekteket és vállalkozásokat finanszírozzanak kis összegű pénzek összegyűjtésével sok embertől.
Az egyik legismertebb példa a sikeres crowdfunding startupokra az Oculus Rift, egy virtuális valóság headset. Az Oculus VR 2012-ben indította el kampányát, és csak két évvel később vásárolta meg a Facebook 2 milliárd dollárért. A szokásos startupok mellett számos blockchain projekt is a crowdfunding útját választotta, például az Ethereum, Tron és EOS. Ma már számos platform létezik, amely lehetővé teszi, hogy közzétegyük kampányunkat. Néhány nagyobb közülük az Indiegogo, Kickstarter és Gofundme, hogy csak néhányat említsünk.
A crowdfunding számos előnnyel jár: széles elérés, hatékonyság és marketing szempontok a legmeggyőzőbbek... De most térjünk át arra, ami igazán fontos!
Crowdfunding bemutatása az Ergon
Néhány nappal ezelőtt, augusztus 28-án, a fő fejlesztő Kushti kijelentette az (Ergo fórumon)[www.ergoforum.org], hogy sikerült megírnia és megvalósítania egy kódot, amely lehetővé teszi a felhasználók számára, hogy crowdfunding kampányt indítsanak az Ergo blockchain tetején (ahogy azt a whitepaper 6. oldalán említik). Ez a kód még a jelenlegi pénztárca API-val is működik. Itt található egy gyors útmutató arról, hogyan állíthatja be a pénztárcát.
Ebben a cikkben megtanulja, hogyan lehet pontosan ezt megtenni: crowdfunding az Ergo tetején! Ezenkívül végigvezet az eddigi első kampány javaslatán, amely a post-EIP1 crowdfunding szkript fejlesztésének finanszírozására irányul.
Ha szeretne belemerülni az összes részletbe, kérjük, olvassa el a következő szakaszt, a "A Szkript"-et. Ellenkező esetben egyszerűen átugorhatja a "Hogyan adományozzunk", "Hogyan gyűjtsünk adományokat" és "Crowdfunding Projekt Javaslat" szakaszokat, amelyek alább találhatók.
A Szkript
A legegyszerűbb crowdfunding szkript, a ErgoScript White Paper (6. oldal) szerint, "egy szkript a következő crowdfunding helyzethez: egy projekt támogatója (a backerPubKey kulccsal) pénzt szeretne adni egy projekthez (a projectPubKey kulccsal), de csak akkor, ha a projekt elegendő pénzt gyűjt (legalább minToRaise) más forrásokból egy határidőn belül (amelyet MAGASSÁG formájában fejeznek ki).
A projekt finanszírozásához a támogató létrehoz egy kimeneti dobozt, amelyet a következő szkript véd. A szkript két feltételt tartalmaz: az egyiket arra az esetre, ha a határidő lejárt (lehetővé téve a támogató számára, hogy visszakapja a pénzt), és egyet arra az esetre, ha a projekt sikeres (lehetővé téve a projekt számára, hogy elkölthesse a pénzt, ha az összeg legalább minToRaise a határidő előtt).
A megfelelő összegű pénz összegyűjtésének biztosítása érdekében a szkript megkeresi a kimeneti gyűjteményben azt a dobozt, amely elegendő értéket képvisel a projectPubKey felé. Annak ellenőrzésére, hogy a kimeneti doboz értéke hová megy, a szkript elolvassa a kimeneti dobozt védő szkriptet, és összehasonlítja azt a proveDlog(projectPubKey) szkripttel; ez a szkript a projectPubKey.propBytes segítségével szerezhető be.
Mivel jelenleg az API nem támogatja a testreszabott környezeti változók beágyazását (csak előre definiáltakat, mint a MAGASSÁG), a szkript lefordításának egyetlen módja az, hogy a whitepaperben szereplő változókat konkrét értékekkel helyettesítjük. Például vegyük figyelembe, hogy egy crowdfunding kampány sikeres, ha 500 Erget gyűjt a 50,000-es blokk előtt. A backerPubKey és projectPubKey esetében a PK() függvényt használhatjuk, amely jelenleg csak P2PK sorozatú kulcsokat fogad el. Ekkor a WhitePaper-ból módosított szkript a következőképpen alakul:
{
val backerPubKey = PK("9h7DHKSDgE4uvP8313GVGdsEg3AvdAWSSTG7XZsLwBfeth4aePG")
val projectPubKey = PK("9gBSqNT9LH9WjvWbyqEvFirMbYp4nfGHnoWdceKGu45AKiya3Fq")
val deadline = 50000
val minToRaise = 500L * 1000000000
val fundraisingFailure = HEIGHT >= deadline && backerPubKey
val enoughRaised = {(outBox: Box) =>outBox.value >= minToRaise
&& outBox.propositionBytes == projectPubKey.propBytes
}
val fundraisingSuccess = HEIGHT < deadline && projectPubKey && OUTPUTS.exists(enoughRaised)
fundraisingFailure || fundraisingSuccess
}
Hogyan adományozzunk
Először is, a JSON nem támogatja a több soros karakterláncokat, ezért a sortöréseket \n-re kell cserélni.
A zárójeleket is escape-elni kell, tehát használjon "-t a " helyett. Az eredményül kapott JSON-t a /script/p2sAddress-re fogják küldeni.
Egy projekthez való adományozáshoz először szerezze be a címét a /wallet/addresses-ből, vegye például az elsőt. Helyezze a címet a backerPubKey-be, így a /script/p2sAddress-re küldött kérés a következőképpen fog kinézni:
{
"source": "{
val backerPubKey = PK(\"9...\")
val projectPubKey = PK(\"9gBSqNT9LH9WjvWbyqEvFirMbYp4nfGHnoWdceKGu45AKiya3Fq\")
val deadline = 50000
val minToRaise = 500L * 1000000000
val fundraisingFailure = HEIGHT >= deadline && backerPubKey
val enoughRaised = {
(outBox: Box) =>
outBox.value >= minToRaise && outBox.propositionBytes == projectPubKey.propBytes
}
val fundraisingSuccess = HEIGHT < deadline && projectPubKey && OUTPUTS.exists(enoughRaised)
fundraisingFailure || fundraisingSuccess
}"
}
a címével a "9..." helyett.
Küldje el a karakterláncot a /script/p2sAddress-re, hogy választ kapjon, mint:
{
"address": "GB3kh2izpWKvyZfMboQwsEscjPaZcz9WrzGqZB4ZrkzRreiFMV6HZYWXGMK3rqCjDCoPgWGNzfnYSUhivW4a1VRYPE7uZXwKnBcqWcRkiuTx6QW55EcPcWeELUsumwdtKoFtWY583nWnKZff"
}
Másolja a cím karakterláncot (GB3… a példánkban), és küldje el a pénzt erre a címre a /wallet/payment/send-en keresztül. A 10 Erg (10 milliárd nanoErg) küldésére irányuló API metódus kérés a következőképpen fog kinézni:
[
{
"address": "GB3kh2izpWKvyZfMboQwsEscjPaZcz9WrzGqZB4ZrkzRreiFMV6HZYWXGMK3rqCjDCoPgWGNzfnYSUhivW4a1VRYPE7uZXwKnBcqWcRkiuTx6QW55EcPcWeELUsumwdtKoFtWY583nWnKZff",
"value": 10000000000
}
]
Ennyi az egész!
Most a pénztárca automatikusan megtalálja a dobozt a blockchain-en, mivel tartalmazza a nyilvános kulcsot, amely a visszatérítési feltételben a pénztárcához tartozik. A pénztárca ezután időszakonként ellenőrzi, hogy a doboz költhető-e, a dobozt bemeneti elemként és csak egy kimenettel (ugyanarra a címre) a legegyszerűbb tranzakció létrehozásával. A visszatérítési magasság (50,000 a példánkban) után a pénztárca képes lesz költeni a dobozt, így a doboz értéke hozzáadódik a /wallet/balances-hez.
Kérjük, vegye figyelembe, hogy ez nem így lesz az EIP-1 3 megvalósítása után, mivel a pénztárca addig szűkebb felismerési mintákat fog használni.
Hogyan gyűjtsünk adományokat
A projekt nyilvános kulcsához társított pénztárca megtalálja a bejövő dobozokat a blockchain-en. Azonban nem fogja tudni biztosítani, hogy a dobozok költhetők, mivel a pénztárca jelenleg a legegyszerűbb tranzakciót használja erre, és a szkript nem működik egy ilyen költési tranzakció esetén.
A /wallet/boxes/uncertain metódus megvalósítása előtt a projektnek az egyetlen módja a bejövő dobozok megtalálására. Ezután a /wallet/transaction/send metódus manuálisan megadott (az "inputsRaw"-ban) sorozatú dobozokkal (használja a /utxo/byIdBinary-t a sorozatú doboz azonosítójának megszerzéséhez).
Kushti ezt saját maga tette, és a következő tranzakciót kapta.
Kérjük, vegye figyelembe, hogy az EIP-1 ezt a munkafolyamatot is megszakítja.
Kushti javasolja, hogy 500 Erget gyűjtsenek a 50,000-es blokk előtt, hogy parancssori szkripteket (Pythonban) fejlesszenek a crowdfunding kampányok szervezésére és részvételére az EIP-1 megvalósítása után. A parancssori szkriptek alkalmasabbak, mint a kézi kérések, és grafikus felületek építésére is használhatók.
A kincstár a források felét biztosította, így másoknak közösen kell hozzájárulniuk a hiányzó 250 Erghez. Ha a kampány nem sikerül, a visszatérítések automatikusan megtörténnek. Mivel az ígéretek összegyűjtése jelenleg nem triviális, Kushti vezeti a projekt szerepét, ezért kérjük, használja a következő kulcsot, amelyet ő irányít:
9gBSqNT9LH9WjvWbyqEvFirMbYp4nfGHnoWdceKGu45AKiya3Fq
Bármilyen összeg adományozásához kérjük, kövesse a fenti "Hogyan adományozzunk" szakaszt, cserélje ki a backerPubKey-t a nyilvános kulcsára, és az ígért összeget a megfelelő értékre (kérjük, vegye figyelembe, hogy nanoErgben van, 1 Erg = 1.000.000.000 nanoErg).
Mint mindig, ha további kérdései, javaslatai vannak, vagy részt szeretne venni a mozgalomban, kérjük, csatlakozzon közösségi média csatornáinkhoz vagy fórumunkhoz.
Share post
2025. augusztus 13.
2025. augusztus 12.
2025. július 9.
2025. május 12.






