channel protocol sketch