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 a kampányok közzétételét. 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égigvezeti az 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" szakaszok olvasását.
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 JSON-t a /script/p2sAddress-re fogják küldeni.
Ahhoz, hogy adományozzon egy projekthez, először szerezze be a címét a /wallet/addresses-ből, vegye például az elsőt közülük. 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 például:
{
"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 pénztárcához tartozik a visszatérítési feltételben. 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 végrehajtása, é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
Ahhoz, hogy bármilyen összegű pénzt adományozzon, 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.






