How to Punch Holes in Network Infrastructure using Go

I had a dream last year about a fully decentralized peer-to-peer network leveraging an architecture that could enhance application performance, save bandwidth, and save money. In this dream, I was using my favorite programming language Go, leveraging Goroutines, Garbage Collection, Channels, and more. It was beautiful. Then suddenly I woke up and was left wondering if this was something I could actually build. What happened next was an adventure of learning about peer-to-peer networking, hole punching through network devices, discovering the go-libp2p module, and realizing my dream of a Go application that could establish peer-to-peer connections over the internet.

In this talk, I am going to share with you what I learned and how you can use Go and the go-libp2p module to punch holes through your networking devices to establish peer-to-peer connections over the internet.

LEVEL: Intermediate

Abstract

DESCRIPTION:

INTRODUCTION
Peer-to-peer networking has been a topic that has piqued my interest since I started university. When I started learning about peer-to-peer networking in Go I ran into problems trying to establish connections when devices were not on the same local network. This turned into hours and hours of learning, finally gaining a deep understanding of networking devices and protocols. In the end, I didn’t give up and learned how to punch holes through networking devices to establish peer-to-peer connections over the internet. In this talk, I am going to share with you what I learned and how you can use Go and the go-libp2p module to punch holes through your networking devices to establish peer-to-peer connections over the internet.

CONCLUSION
I believe the go-libp2p module is the right choice for writing peer-to-peer networking applications in Go. I have shown you how to establish peer-to-peer connections over the internet with the ability to punch holes through networking devices. Now you have the information and tools you need to introduce peer-to-peer networking in your solutions when it’s the right choice. I hope in the future you consider peer-to-peer networking and the use of the go-libp2p module.

KEY TAKEAWAYS
* Awareness of go-libp2p existence: how easy it is to set up even complex p2p networks using Go
* Basic understanding of peer-to-peer networking, use cases, challenges that they impose, and how we are solving them.
* Deep understanding of NAT hole punching: inspiration to solve the symmetric NAT hole punching problem


ADDITIONAL NOTES:

TARGET AUDIENCE
* Go developers who find the topic of peer-to-peer networking interesting
* People that would like to know how to do p2p in go
* Intermedia Go developer with some networking experience

GoLab is a conference made by Develer.
Develer is a company based in Campi Bisenzio, near Florence. Our motto is : "Technology to give life to your products". We produce hardware and software to create exceptional products and to improve industrial processes and people's well being.
In Develer we have passion for the new technologies and we offer our clients effective solutions that are also efficient, simple and safe for the end users. We also believe in a friendly and welcoming environment where anybody can give their contribution. This passion and this vision are what we've been driven to organize our conference "made by developers for developers".


Subscribe to our newsletter

We hate spam just as much as you do, which is why we promise to only send you relevant communications. We respect your privacy and will never share your information with third parties.
©2024 GoLab | The international conference on Go in Florence-Design & devCantiere Creativo-Made withDatoCMS