Development
Last updated
Last updated
In the previous chapter, we glanced on the above image. For the purpose of development, it is very important to have a somewhat decent understanding of how IRI and the network function. The network is composed of IRI nodes (shown in the above image). Whenever an IRI receives a new transaction from one of its neighbors, it first checks whether it has already received it, and if not, the node saves the transaction, then forwarding it to the other neighbors. That means that we are able to send a transaction to whichever IRI node within the network we want and that node will distribute it to the others. We must also take into consideration propagation times, as the laws of physics prevent our transactions from reaching the other side of the network instantly.
The easiest way for a developer to think of IRI is just like a RESTful API/web service. It is a web service somewhere on the planet, and you send requests and get responses. Simple, right? Well, it gets even easier by using libraries developed by the IOTA Foundation and community developers. The Java, JS and Go libraries are very well supported by the IOTA Foundation, but since this is a C# guide, we will be using the tangle-net library for .NET, which is being supported and developed by our community member Felandil. We can find Felandils official Tangle-net documentation of the library here.
Before we start, there are a few things left to mention. We must choose which network we are going to use for development and testing purposes. We have three choices here: the so called mainnet, which is the main IOTA network - the production network if you will, we also have a public devnet, which is the development network where we are able to obtain free tokens and its purpose is as the name suggests - development, and finally, we have something called privatenet. The difference between devnet and privatenet is that devnet has a Compass run by the Foundation and the entire network is public. Within the privatenet, we have to setup the Compass and form the network ourselves. That gives us complete control over the entire network. For the bigger PoCs, it is recommended to start with the privatenet but for the purposes and simplicity of this documentation we will be using the public devnet.