Immersion in blockchain technology: What is ICO and how to conduct it

    We continue a series of materials devoted to development using blockchain technologies. In this article, the developer from Waves talks about how to conduct a growing ICO, as well as the experience of raising nodes in the Azure cloud.



    Series of articles “Immersion in Blockchain Technology”


    1. A series of materials devoted to Emer technology:
      1.1. Secrets of EmerCoin .
      1.2. A decentralized, uncensored domain name system .
      1.3. World-wide public key infrastructure .
      1.4. Decentralized passwordless security system .
    2. Fast and secure transactions .
    3. Ecosystem of digital dentistry .
    4. The fight against counterfeit goods .
    5. Mutual animal insurance .
    6. What is an ICO and how to conduct it .
    7. Loading ....

    What is an ICO?


    Recently, it has become popular to abandon the familiar IPO model in favor of conducting an ICO - initial coin offering - a much simpler organizational process. The technical basis of ICOs is tokens. Tokens are issued by adding transactions to the blockchain with their description, quantity and unique ID. After the release, any number of tokens can be sent to any wallet in the blockchain.


    ICO is a company selling its tokens in exchange for more or less stable cryptocurrencies. Since there is no external regulator represented by the state, one has to rely on the reputation. Here escrow come into play - reputable people or companies whose wallets are used to store funds until the completion of the ICO. In the event that the ICO is completed, raising money less than the minimum threshold, the escrow will return everything back to investors.


    Sometimes they use wallets with several signatures (multisig wallets). For example, for the Bitcoin network, such wallets are described here .


    On how to conduct an ICO on Waves, I will talk more.


    Waves platform


    Waves cryptocurrency platform was launched in April 2016, ICO investments amounted to 30 thousand bitcoins, and today the platform capitalization is more than $ 100 million. The Waves blockchain uses the Proof-of-stake algorithm, with a minimum mining balance of 10,000 Waves.


    One of the main ways to use Waves is to conduct an ICO. Network platform consists of a so-called node (node - node ) which communicate with each other and provide API for use by client purses.


    The main programming interface of the platform is the Node API, which supports working with various transactions: funds transfer, token issuance and Waves leasing. The node also provides a decentralized exchange (DEX) API. Most API methods are accessible from the web client, but of course they can be used directly. For example, we’ll get a list of the last 20 unconfirmed (pending adding to the blockchain) transactions:


    require('http').get({
        host: 'nodes.wavesnodes.com',
        port: 80,
        path: '/transactions/unconfirmed'
    }, (res) => {
        let raw = '';
        res.on('data', (ch) => { raw += ch; });
        res.on('end', () => console.log(JSON.parse(raw)));
    });

    The full Node API documentation can be found in the same place as the detailed description of the node installation : in the GitHub repository.


    One of the advantages of owning a Waves node is the possibility of mining. A node with a balance of 10000 Waves involved in generating blocks, and for each generated block it receives a commission from all transactions in the block, as well as a bonus in the form of a certain amount of MRT (Miners Reward Token), which, in turn, You can trade on the exchange.


    To organize a mining node on the Waves network, you need to deploy it on your server. The node has no special hardware requirements, but you should still have 4 GB of RAM and 10 GB of free disk space. Also a very convenient way to raise a node is to use a ready-made virtual machine in MS Azure.


    Waves Node in Azure


    Find the Waves Platform in the Azure Marketplace and click the "Create" button. Then, a few simple steps to configure your virtual machine with Waves on board.


    First of all, select a name and create an account. Also determine the type of disk, authentication method and geographic location of the machine:



    Now find your iron configuration:



    And finally, configure the network and specify additional parameters:



    It remains to check the settings and pay for the subscription. Congratulations, you are now a Waves member!


    DEX: the easiest way to conduct an ICO


    As mentioned above, DEX stands for "decentralized exchange" and allows you to trade tokens that are on the blockchain. DEX work is provided by a player that stores user orders and sends token exchange transactions to the blockchain for executed orders. The main advantage of such an exchange is that all the money is stored in the user's wallet, and the match only matches orders. Before getting into the Waves blockchain, exchange transactions are always checked by the nodes for the correspondence of prices in orders, so that the player could not introduce the “wrong” transactions.


    In DEX, you do not need to wait for the addition of new currencies, and this makes it a convenient platform for a quick ICO: you can issue your token and, as soon as the issue transaction is on the blockchain, put it up for sale.


    In short, the process is as follows:


    1. Download WavesLiteApp and buy some Waves (for example, through ShapeShift ).
    2. Go to the Token Creation tab and create a new token (commission - 1 Waves).
    3. Wait a bit, and then put the token on sale in the DEX tab, at the price that will ensure that the goal of raising funds for your ICO is achieved. You can create orders in several pairs if you want to accept different currencies, and even with different prices - to create bonus conditions for the first investors.

    However, this scheme also has disadvantages. Firstly, at the moment there are no multisig wallets in Waves, which means that investors should fully trust the creator of the ICO or his escrow. Secondly, in order to operate with cryptocurrencies that are not native to the platform, you must first use the gateway to transfer funds from a third-party blockchain to the Waves blockchain. Special "tokens" have been created for "external" cryptocurrencies inside the platform, which exchange one-on-one with the same currency in its real blockchain.


    Waves allows you to conduct safe exchange trading and conduct ICOs and crowdfunding campaigns, while being a kind of sidechain technology for other fiat and cryptocurrencies. Read more about sidechain in this article .


    We receive data on transactions on DEX from datafeed service


    The Waves community is actively pursuing its own developments that enhance and complement the platform. Here I will talk about datafeed - a program that integrates with a node and aggregates information about transactions concluded through DEX.


    Suppose we need a history of transactions for a pair, that is, those orders for which exchange transactions have already entered the blockchain. For this we use the method /api/trades/{amountAssetId}/{priceAssetId}/{limit}. As an example, we will request the last 50 deals for the WAVES / BTC pair:


    require('http').get({
        host: 'marketdata.wavesplatform.com',
        port: 80,
        path: '/api/trades/WAVES/BTC/50'
    }, (res) => {
        let raw = '';
        res.on('data', (ch) => { raw += ch; });
        res.on('end', () => console.log(JSON.parse(raw)));
    });

    This and other data from datafeed can be used to track the progress of the ICO: for example, to obtain statistics on cryptocurrencies and transaction sizes when buying ICO tokens.


    The datafeed project is in beta, so there is no official documentation yet. The current draft with a description of the basic methods is under the spoiler.


    datafeed API

    Waves Data Feed API (v1.3.2)


    REST API server http://marketdata.wavesplatform.com/api/


    REST API methods:


    GET /symbols — get the list of symbols


    GET /markets — get the list of all asset pairs traded, with ticker and matchers info


    GET /tickers — get the tickers for all asset pairs traded


    GET /ticker/{amountAsset}/{priceAsset} — get the ticker for the specified asset pair


    GET /trades/{amountAsset}/{priceAsset}/{limit} — get the last {limit} trades for the specified asset pair. Response includes both unconfirmed and confirmed transactions (there is a confirmed boolean field on each reported tick)


    GET /trades/{amountAsset}/{priceAsset}/{from_timestamp}/{to_timestamp} — get all trades (up to a max of 100) between {from_timestamp} and {to_timestamp}


    GET /trades/{amountAsset}/{priceAsset}/{address}/{limit} — get the last {limit} trades for the specified {address} and asset pair


    GET /candles/{amountAsset}/{priceAsset}/{timeframe}/{limit} — get the last {limit} candles for the specified asset pair and {timeframe} (valid timeframes are 5, 15, 30, 60, 240, 1440 minutes)


    GET /candles/{amountAsset}/{priceAsset}/{timeframe}/{from_timestamp}/{to_timestamp} — get all candles between {from_timestamp} and {to_timestamp} with the specified {timeframe}


    GET /matchers — get the list of all available matchers


    Examples:


    http://marketdata.wavesplatform.com/api/symbols
    http://marketdata.wavesplatform.com/api/markets
    http://marketdata.wavesplatform.com/api/ticker/waves/btc
    http://marketdata.wavesplatform.com/api/trades/mrt/btc/25
    http://marketdata.wavesplatform.com/api/trades/waves/btc/1493121600000/1493488800000
    http://marketdata.wavesplatform.com/api/trades/waves/btc/3PMAVpWdSqPWrLvkYRqukmSyhv6btc8rnVB/5
    http://marketdata.wavesplatform.com/api/candles/waves/btc/1440/10
    http://marketdata.wavesplatform.com/api/candles/waves/btc/1440/1493121600000/1493488800000


    Both amountAsset and priceAsset can be Asset IDs or Asset Symbols. They can also be mixed. Symbols are case insensitive.


    Authored by Peter Black.


    Будущее платформы Waves


    Вполне можно предположить, что через 10-15 лет криптовалюты и блокчейн-технологии будут настолько же привычными, насколько сегодня нам привычны пластиковые карты. Уже сейчас многие люди, особенно в развитых странах, начинают противиться контролю со стороны государства и банков. Это движение к децентрализации порождает множество проектов, подавляющему большинству которых необходимо финансирование, которое логичнее всего искать среди целевой аудитории — в криптовалютной индустрии.


    Именно здесь, в области финансирования и проведения ICO, платформа Waves может занять ключевую позицию и стать одним из лидирующих игроков криптомира, позволяя новым проектам быстро и эффективно находить инвестиции.


    In addition to ICO and tokenization, the Waves team conducts research in the field of anonymous voting on the blockchain, and also plans to develop and implement a secure messenger based on the platform.


    about the author


    Philipp philippac

    Philip Philippak is the frontend developer of Waves Platform. He came into professional development in 2012, was engaged in various projects, including Probok.net, LabicomConnect and timestore. I participated in the gamedev-competition js13kGames. Currently, he is developing the Lapti ICO platform . He is fond of software architecture and the study of algorithms.


    Also popular now: