func NewSignalPair(signal string) (receiver *zmq.Socket, sender *zmq.Socket, err error) {
	receiver, err = zmq.NewSocket(zmq.PAIR)
	if nil != err {
		return nil, nil, err
	}
	receiver.SetLinger(0)
	err = receiver.Bind(signal)
	if nil != err {
		receiver.Close()
		return nil, nil, err
	}
	sender, err = zmq.NewSocket(zmq.PAIR)
	if nil != err {
		receiver.Close()
		sender.Close()
		return nil, nil, err
	}
	sender.SetLinger(0)
	err = sender.Connect(signal)
	if nil != err {
		receiver.Close()
		sender.Close()
		return nil, nil, err
	}
	return receiver, sender, nil
}
***** FIX THIS: enabling this causes complete failure
***** FIX THIS: socket disconnects, perhaps after IVL value
const (
heartbeatInterval = 15 * time.Second
heartbeatTimeout  = 60 * time.Second
heartbeatTTL      = 60 * time.Second
)
NewSignalPair -return a pair of connected PAIR sockets
for shutdown signalling
package zmqutil
import (
	"time"
	zmq "github.com/pebbe/zmq4"
	"github.com/bitmark-inc/bitmarkd/util"
	"github.com/bitmark-inc/logger"
)
const (
	maximumPacketSize = 5000000  
)