config({
  log:{
    time:true
  },
  MEMPOOL:1E7,
})

port(DIR.IP('udp://localhost'))
connect(DIR.IP('udp://localhost:5568?secure=12:34:56:78:00:01'));

// agent with high payload
function ag(options) {
  this.goto=null;
  this.root=null;
  this.data=options.data;
  this.act = {
    check: function () {
      log('Waiting');
      this.root=myNode();
      var links=link(DIR.IP('%'));
      if (links && links.length) 
        this.goto=links[0];
      else sleep(500);
    },
    move: function () {
      log('Going to '+this.goto);
      moveto(DIR.NODE(this.goto))
    },
    back: function () {
      log('Going back to '+this.root);
      moveto(DIR.NODE(this.root))      
    },
    end: function () {
      log('I am back. Terminating (#data='+this.data.length+')');
      kill();
    },
  }
  this.trans = { check:function () { return this.goto?'move':'check' },
                 move:'back',
                 back:'end' }
  this.next = 'check';
}

start()
var a1 = array(20000,Math.random);
print(create(ag,{
  data : a1 
},2))
