This tutorial describes how to build a simple payment channel application on top of Ethereum using go-perun. The tutorial targets developers familiar with Golang and Ethereum. The source code snippets within this tutorial are literally included from perun-examples, (c) PolyCrypt GmbH 2021, licensed under Apache-2.0. The entire source code is available at GitHub.
The picture below gives an overview of the setup. Alice and Bob are the payment channel clients. They have an on-chain connection to an Ethereum blockchain backend for funding and withdrawing assets onto their payment channel. They also have a direct off-chain connection for operating their payment channel and sending payments without blockchain interaction.