func openConnection(peerPublicKey crypt.Key) {
    conn, err := peer.Open(keypair, peerPublicKey)
    if err != nil {
        panic(err)
    }
    defer conn.Close()

    dispatcher := peer.NewDispatcher(conn)
    li := dispatcher.Listen(80)
    runHTTP(li)
}

func runHTTP(li net.Listener) {
    mux := http.NewServeMux()
    mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        io.WriteString(w, "Hello World")
    })
    err := http.Serve(li, mux)
    if err != nil {
        panic(err)
    }
}