IOTA: Learning by example: IOTA Workshops

  • Tuesday, 13 August 2019 17:56
IOTA: Learning by example: IOTA Workshops © IOTA
IOTA introduces a lot of new concepts, such as the Tangle and Trinary, which may seem difficult to use. That’s why we have some excellent client libraries that abstract most of the concepts into easy-to-use functions.To help you start developing with IOTA technology, we created several ‘workshops’ for the C, Go, JavaScript and Python libraries. They teach the most common things you will do with these libraries and give concrete code examples that demonstrate how to do these interactions. The workshops are great to use when you are starting with IOTA or when you are teaching others about what IOTA is and how to interact with the Tangle.The C workshopThe client library for the C programming language is called “Entangled” and is one of the harder libraries to work with. That’s because it has been written in a low-level programming language.Low-level programming languages are great for performance. They are good for devices with limited processing power/memory. However, you have to do a lot more yourself when it comes to programming — memory management, for example — which makes it harder to work with over higher-level languages, like Python or JavaScript.The Entangled client library, built from the ground up by the IOTA Entangled team, can do a lot of things in a lot of different ways. It’s an excellent candidate for a workshop!The workshop currently consists of examples of how to:Send and receive transactionsCheck your balanceGenerate new addressesSend IOTA coinsThe C Workshop can easily be cloned from the IOTA Community GitHub. The Bazel build tool is the only dependency you need to get started.The Go workshopThe Go programming language is a well-performing programming language that has gained a lot of popularity over the last couple of years.Go is a good compromise between the development of a higher-level language and the performance of a lower level one. The Go Client Library for IOTA offers all the basic functionality you need to interact with the Tangle using Go. This library is actively maintained by the IOTA Foundation and is extensively used in the GoShimmer prototype for Coordicide.The Go workshop currently consists of examples of how to:Send and receive transactionsCheck your balanceGenerate new addressesSend IOTA coinsSend and receive multi-transaction messagesUtilize a real-time stream of incoming transactions using ZeroMQThe Go Workshop can be cloned from the IOTA Community GitHub, all you need is Go version 1.10 or higher.The JavaScript workshopThe JavaScript workshop was the first workshop created — and with a good reason: JavaScript/Typescript is very often used in the IOTA Ecosystem, including the Trinity Wallet software and a lot of the proof of concepts built by the IOTA Foundation and IOTA communities.JavaScript/TypeScript can be used in browsers (clientside) or servers in combination with Node.js (serverside), which makes it very versatile when integrating IOTA in a web-application.The iota.js client library is a client library maintained by the IOTA Foundation and written in TypeScript. It will most likely be your best bet when you want to develop something with JavaScript and IOTA.The JavaScript workshop currently consists of examples of how to:Send and receive transactionsCheck your balanceGenerate new addressesSend IOTA coinsSend and receive multi-transaction messagesUtilize a real-time stream of incoming transactions using ZeroMQSend and receive data using MAM0 streams.The JavaScript Workshop can also be cloned from the IOTA Community GitHub repository. All you need to run them is a recent version of Node.js and npm.The Python workshopPython is a popular higher-level programming language used for a lot of different purposes, including web development, automation, and data science. It’s easy to learn and work with, and it’s often recommended as a good first programming language to learn. A client library — called PyOTA — is available for IOTA. It covers all the basic functionalities you need to interact with the Tangle.The Python workshop currently consists of examples of how to:Send and receive transactionsCheck your balanceGenerate new addressesSend IOTA coinsSend and receive multi-transaction messagesUtilize a real-time stream of incoming transactions using ZeroMQThe Python Workshop can be cloned from the IOTA Community GitHub. It requires Python 3.5 or 3.6 installed on your system to run the examples.ConclusionWe hope these workshops show you how easy it is to develop something that interacts with the Tangle.As you might have noticed, these workshops are not part of the regular IOTA Foundation GitHub Organization. They are part of a separate Community Organization.The current autonomy allows us to easily add community developers — who wish to contribute to the IOTA Ecosystem — to the organization. Someone, for example, who wants to develop a version of the workshop in another programming language or a tool that benefits others in the ecosystem.We are always open to pull requests for additions or improvements to the existing workshops. We update and extend the workshops over time when new functionalities become available in the various client libraries.If you wish to add a contribution, feel free to contact Dave de Fijter or Lewis Freiberg on Discord (you can find them in the IOTA Foundation section of the user list). They will add you to the organization.Learning by example: IOTA Workshops was originally published in IOTA on Medium, where people are continuing the conversation by highlighting and responding to this story.

Additional Info

Leave a comment

Make sure you enter all the required information, indicated by an asterisk (*). HTML code is not allowed.

Disclaimer: As a news and information platform, also aggregate headlines from other sites, and republish small text snippets and images. We always link to original content on other sites, and thus follow a 'Fair Use' policy. For further content, we take great care to only publish original material, but since part of the content is user generated, we cannot guarantee this 100%. If you believe we violate this policy in any particular case, please contact us and we'll take appropriate action immediately.

Our main goal is to make crypto grow by making news and information more accessible for the masses.