func submitForwarder() error {
	in, err := zmq.NewSocket(zmq.PULL)
	if nil != err {
		return err
	}
	defer in.Close()
	in.SetLinger(0)
	err = in.Bind(submission)
	if nil != err {
		return err
	}
	out, err := zmq.NewSocket(zmq.ROUTER)
	if nil != err {
		return err
	}
	defer out.Close()
	out.SetLinger(0)
	err = out.Bind(subdeal)
	if nil != err {
		return err
	}
	return zmq.Proxy(in, out, nil)
}
internal submit forwarding loop
package main
import (
	"encoding/json"
	"fmt"
	zmq "github.com/pebbe/zmq4"
	"github.com/bitmark-inc/logger"
)
const (
	submission = "inproc://proof.submit"  
	subdeal    = "inproc://proof.dealer"  
)
func SubmitQueue() {
	go func() {
		err := submitForwarder()
		logger.PanicIfError("proofProxy", err)
	}()
}