📜 ⬆️ ⬇️

Dive into the blockchain technology: What is ICO and how to conduct it

We continue a series of materials devoted to the development using blockchain technology. In this article, the developer from Waves talks about how to get an increasingly popular ICO, as well as the experience of raising a node in the Azure cloud.



The series of articles "Immersion in technology blockchain"


  1. Emer Technology Series:
    1.1. The secrets of EmerCoin .
    1.2. Decentralized uncensored domain name system .
    1.3. Worldwide public key infrastructure .
    1.4. Decentralized password-free security system .
  2. Fast and secure transactions .
  3. Ecosystem of digital dentistry .
  4. Fight against counterfeit goods .
  5. Mutual insurance of animals .
  6. What is ICO and how to spend it .
  7. Loading ....

What is ICO?


Recently, the departure from the usual IPO model in favor of holding an ICO - initial coin offering - an organizationally much simpler process has become popular. The technical basis of ICO is tokens. Tokens are issued by adding transactions to the blockchain with their description, number and unique ID. After release, any number of tokens can be sent to any wallet in the blockchain.


ICO is the sale by the company of its tokens in exchange for more or less stable cryptocurrencies. Since there is no external regulator in the person of the state, we have to rely on reputation. This is where escrow comes into play - reputable people or companies whose wallets are used to hold funds until the completion of the ICO. In the event that the ICO is completed, having collected money less than the minimum threshold, the escrow returns everything back to investors.


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


How to spend ICO on Waves, I will tell further.


Waves platform


Waves cryptocurrency platform was launched in April 2016, ICO-investments amounted to 30,000 bitcoins, and today the capitalization of the platform 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 uses for Waves is to conduct an ICO. The platform network consists of so-called nodes (node) that communicate with each other and provide an API for use by client wallets.


The main programmatic interface of the platform is the Node API, which supports work with various transactions: transfer of funds, issuing tokens and leasing Waves. The node also provides a decentralized exchange API (DEX). Most API methods are accessible from the web client, but they can of course be used directly. For example, we 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 complete Node API documentation can be found in the same place as the detailed description of node installation : in the GitHub repository.


One of the advantages of owning a Waves node is the possibility of mining. A node that has 10,000 Waves in its balance sheet participates 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 node in the Waves network, you need to deploy it on your server. There are no special requirements for hardware at the node, but 4 GB of RAM and 10 GB of free disk space is still worth having. Also, a very convenient way to raise a node is to use a ready 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 set up your virtual machine with the Waves on board.


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



Now find the appropriate hardware configuration:



And finally, configure the network and specify additional parameters:



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


DEX: the easiest way to conduct an ICO


As mentioned above, DEX stands for "decentralized exchange" and allows you to trade tokens that are in the blockchain. DEX operation is provided by the match player, which stores user orders and sends token block exchange transactions for token orders. The main advantage of such an exchange is that all the money is stored in the user's wallet, and the matcher only matches orders. Before getting into the Waves blockchain, exchange transactions are always checked by the nodes for price matching in orders so that the matcher cannot implement the "wrong" transactions.


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


In short, the process is as follows:


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

However, such a scheme has its drawbacks. First, at the moment there are no multisig-wallets in Waves, which means investors should completely trust the creator of ICO or its escrow. Secondly, to operate with cryptocurrencies that are not native to the platform, you must first use the gateway to transfer funds from the third-party blockchain to the Waves blockchain. For the "external" cryptocurrency inside the platform, special tokens are created that exchange one to one with the same currency in its real blockchain.


Waves allows you to conduct safe exchange trading and conduct ICO and crowdfunding campaigns, while at the same time being something of a sidechain technology for other fiat and cryptocurrencies. You can read more about sidechain in this article .


We receive data on transactions on DEX from the datafeed service


Community Waves is actively conducting its own development, improving and complementing the platform. Here I will talk about datafeed - a program that integrates with the node and aggregates information about transactions concluded through DEX.


Suppose we need a history of transactions for any pair, that is, those orders, exchange transactions from which have already hit the blockchain. To do this, use the method /api/trades/{amountAssetId}/{priceAssetId}/{limit} . As an example, let's 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))); }); 

These and other data from the datafeed can be used to track the progress of ICO: for example, to obtain statistics on cryptocurrencies and transaction sizes when purchasing 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 - 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 (for 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}


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 Asset IDs or Asset Symbols. They can also be mixed. Symbols are case insensitive.


Authored by Peter Black .


Future Waves Platform


It can be assumed that in 10-15 years cryptocurrency and blockchain technologies will be as familiar as plastic cards today are used to. Already, many people, especially in developed countries, are beginning to resist state and bank control. This movement towards decentralization spawns many projects, the overwhelming majority of which need financing, which it is most logical to look for among the target audience - in the cryptocurrency industry.


It is here, in the field of financing and conducting ICO, the Waves platform can take a key position and become one of the leading players in cryptomir, allowing new projects to quickly and efficiently find investments.


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


Philip Philippak

Philipp Philippak is a frontend developer of the Waves Platform. He came to professional development in 2012, was engaged in various projects, including Probok.net, LabicomConnect and timestore. Participated in js13kGames gamedev competition. Currently engaged in the development of the Lapti ICO platform. He is fond of software architecture and the study of algorithms.


')

Source: https://habr.com/ru/post/328896/


All Articles