Οδηγός: Δημιουργώντας ένα ICO στα γρήγορα
Τα ICO (αρχικές προσφορές νομισμάτων) εξακολουθούν να είναι λέξη-κλειδί στις καθημερινές ειδήσεις στον κόσμο του Blockchain. Πολλές καινοτόμες ιδέες και τρόποι υλοποίησής της κάθε μιας ακούγονται καθημερινά. Παρ’ όλα αυτά η δημιουργία ενός κρυπτονομίσματος βασισμένου στο Ethereum είναι κάτι πολύ πολύ εύκολο που ο καθένας μας θα μπορούσε να κάνει. Και γι’ αυτό το λόγο, θα δείξουμε και πώς μπορούμε να δημιουργήσουμε ένα.
Το ICO
Ως παράδειγμα για αυτό το άρθρο, θα δημιουργήσουμε ένα δοκιμαστικό ICO σε απλή, βασική μορφή, καθαρά για λόγους παρουσίασης και με τρόπο που ο καθένας θα μπορεί να δημιουργήσει το δικό του ICO.
Προαπαιτούμενα για το ICO μας:
- Node.js γιατί χωρίς αυτό δε γίνεται τίποτε
- Solidity, τη γλώσσα προγραμματισμού του Ethereum
- To smart contract του OpenZeppelin ως πρότυπο
- Truffle framework για τη δημιουργία του ICO
- Πορτοφόλι στο MyEtherWallet.com για το ICO
Εφαρμογή
Αρχικά θέλουμε να δημιουργήσουμε ένα φάκελο εκεί που θέλουμε το project. Έπειτα πηγαίνουμε από το τερματικό και τρέχουμε την εντολή
truffle init
Έπειτα κατεβάζουμε και το zeppelin:
npm i zeppelin-solidity
Και αντιγράφουμε τον παρακάτω κώδικα στο /contracts/Metacoin.sol ή απλά φτιάξτε το δικό σας αρχείο στο φάκελο contracts:
pragma solidity ^0.4.15; //basiki asfaleia apo to zeppelin import 'zeppelin-solidity/contracts/token/ERC20Basic.sol'; import 'zeppelin-solidity/contracts/token/StandardToken.sol'; //pame contract MVOIco is StandardToken { using SafeMath for uint256; string public name = "My Vivid Omagination Token"; string public symbol = "MVO"; uint public decimals = 18; uint256 public totalSupply = 21000000 * (uint256(10) ** decimals); uint256 public price; address public owner; uint256 public endTime; modifier during_ico(){ if (now >= endTime){ revert(); }else{ _; } } function () payable during_ico { createTokens(msg.sender); } function createTokens(address recipient) payable { if (msg.value == 0) { revert(); } uint tokens = SafeMath.div(SafeMath.mul(msg.value, price), 1 ether); totalSupply = SafeMath.add(totalSupply, tokens); balances[recipient] = SafeMath.add(balances[recipient], tokens); if (!owner.send(msg.value)) { revert(); } } // dhmiourgia tou smart contract function MVOIco() { totalSupply = totalSupply; endTime = now + 8 weeks; price = 200; balances[msg.sender] = totalSupply; owner = msg.sender; } }
Αυτό που περιγράφεται παραπάνω είναι ένα ICO βασισμένο στο OpenZeppelin. Το OpenZeppelin είναι ένα πρότυπο έξυπνο συμβόλαιο με σκοπό την επαναχρησιμοποίησή του. Γι’ αυτό και δοκιμάζεται συνεχώς από ειδικούς της κοινότητας και δεν χρειάζεται να ανησυχούμε για την ασφάλεια του.
Αρχίζουμε
Σε αυτό το σημείο, έχουμε τελειώσει με το smart contract και θέλουμε να το ανεβάσουμε στο Roopsten για να δούμε αν λειτουργεί. Για να το κάνουμε αυτό, θα χρησιμοποιήσουμε το MyEtherWallet.com για τη δημιουργία ενός test wallet και θα χρειαστούμε λίγο ropsten ether για να μπορούμε να κάνουμε deploy το smart contract.
Αφού σιγουρευτούμε ότι είμαστε συνδεδεμένοι στο Ropsten, πατάμε Contracts>Deploy Contract και γυρνάμε στο terminal και γράφουμε:
truffle compile
Όταν τελειώσει αυτό και όλα έχουν πάει καλά, πάμε στο φάκελο build και ανοίγουμε το MVOIco.json. Πάμε στο τέρμα, αντιγράφουμε το περιεχόμενο του “unlinked_binary” και το κάνουμε επικόλληση στο ether wallet. Καλύτερα βάλτε υψηλό gas για να γίνει αμέσως και πάμε για deploy. Σε ένα λεπτάκι θα έχουμε το δικό μας Token.

Έχουμε 21,000,000 MVO!
Εν τέλει
Αυτό είναι το πρώτο βιντεάκι που δημιουργώ κι ελπίζω να σας άρεσε. Ο σκοπός ήταν να δείξω πόσο έυκολο είναι να δημιουργήσει κάποιος ένα ICO πάνω στο Ethereum και σκοπεύω να το ξαναεπισκευτώ στο μέλλον για δημιουργία σελίδας κτλ. Όλα τα αρχεία του οδηγού βρίσκονται στο GitHub μας.
Όπως πάντα, κάθε σχόλιο, πρόταση και ερώτηση είναι ευπρόσδεκτα! Για οποιαδήποτε απορία έχετε, αφήστε ένα μήνυμα παρακάτω. Μείνετε συντονισμένοι!
Πολύ ωραίος οδηγός. Περιμένουμε περισσότερους 🙂
Ευχαριστώ!