public byte[] sign() {
   D_Peer signer = D_Peer.getPeerByLID(introducerPeerLID, true, false);
   if (signer == null) return null;
   SK sk = signer.getSK();
   if (sk == null) return null;
   signature = Util.sign(this.getSignatureEncoder().getBytes(), sk);
   return signature;
 }
 public boolean verifySignature() {
   D_Peer signer = D_Peer.getPeerByLID(introducerPeerLID, true, false);
   if (signer == null) return false;
   PK pk = signer.getPK();
   if (pk == null) return false;
   boolean result = Util.verifySign(this.getSignatureEncoder().getBytes(), pk, signature);
   return result;
 }
 @Override
 public D_TesterIntroducer decode(Decoder dec) throws ASN1DecoderFail {
   Decoder d = dec.getContent();
   introducerPeerGID = d.getFirstObject(true).getString();
   try {
     introducerPeerLID = Util.lval(D_Peer.getPeerLIDbyGID(introducerPeerGID), -1);
   } catch (P2PDDSQLException e) {
     e.printStackTrace();
   }
   testerGID = d.getFirstObject(true).getString();
   testerLID = net.ddp2p.common.data.D_Tester.getTesterLIDbyGID(testerGID);
   _weight = Util.fval(weight = d.getFirstObject(true).getString(), 0.0f);
   creation_date = d.getFirstObject(true).getGeneralizedTimeCalender_();
   signature = d.getFirstObject(true).getBytes();
   return this;
 }