示例#1
0
    def run(self):
        ec = ec_generate_key(u"low")
        self._my_member = Member.get_instance(ec_to_public_bin(ec),
                                              ec_to_private_bin(ec),
                                              sync_with_database=True)

        self.caller(self.test_incoming_barter_record)
def create_bc3_community(dispersy):
    ec = ec_generate_key(u"very-low")
    private_key = ec_to_private_bin(ec)
    public_key = ec_to_public_bin(ec)

    my_member = dispersy.get_member(public_key, private_key)
    c = BarterCommunity.create_community(dispersy, my_member, DummySwiftProcess())
    logger.info("created community with cid " + c.cid.encode('hex'))
    
    with open(os.path.join(os.environ["PROJECTROOT"], "tmp", "bc3_master"), "w") as f:
        print >>f, c._master_member.public_key.encode("hex"), c._master_member.mid.encode("hex")
示例#3
0
 def load_community(cls, master):
     dispersy = Dispersy.get_instance()
     try:
         # test if this community already exists
         classification, = next(dispersy.database.execute(u"SELECT classification FROM community WHERE master = ?", (master.database_id,)))
     except StopIteration:
         # join the community with a new my_member, using a cheap cryptography key
         ec = ec_generate_key(u"NID_secp160r1")
         return cls.join_community(master, Member(ec_to_public_bin(ec), ec_to_private_bin(ec)))
     else:
         if classification == cls.get_classification():
             return super(EffortCommunity, cls).load_community(master)
         else:
             raise RuntimeError("Unable to load an EffortCommunity that has been killed")
示例#4
0
 def load_community(cls, master, swift_process):
     dispersy = Dispersy.get_instance()
     try:
         # test if this community already exists
         classification, = next(dispersy.database.execute(u"SELECT classification FROM community WHERE master = ?", (master.database_id,)))
     except StopIteration:
         # join the community with a new my_member, using a cheap cryptography key
         ec = ec_generate_key(u"NID_secp160r1")
         return cls.join_community(master, Member(ec_to_public_bin(ec), ec_to_private_bin(ec)), swift_process)
     else:
         if classification == cls.get_classification():
             return super(EffortCommunity, cls).load_community(master, swift_process)
         else:
             raise RuntimeError("Unable to load an EffortCommunity that has been killed")
示例#5
0
def setup_peer_dir(peers_directory, peer_count):
    for i in range(peer_count):
        td = peers_directory+"/"+"%05d" %(i+1)
        if not isdir(td): makedirs(td)
    with open(peers_directory + "/peer.count", "w") as f:
        f.write("%d\n" %(peer_count))
    with open(peers_directory + "/peer-keys", 'w') as f:
        for i in range(peer_count):
            rsa = ec_generate_key(u"low")
            f.write("%(id)s %(ip)s %(port)d %(public_key)s %(private_key)s\n" % \
                          {'id': i+1, #'peer-%05d' % i,
                           'ip': '0.0.0.0',
                           'port': 12000 + i,
                           'public_key': ec_to_public_bin(rsa).encode("HEX"),
                           'private_key': ec_to_private_bin(rsa).encode("HEX")
                           }
                          )
    for node in get_nodes(peers_directory):
        open(node+"/data/bartercast.log", "w").close()
        open(node+"/data/availability.log", "w").close()
示例#6
0
def setup_peer_dir(peers_directory, peer_count):
    for i in range(peer_count):
        td = peers_directory + "/" + "%05d" % (i + 1)
        if not isdir(td): makedirs(td)
    with open(peers_directory + "/peer.count", "w") as f:
        f.write("%d\n" % (peer_count))
    with open(peers_directory + "/peer-keys", 'w') as f:
        for i in range(peer_count):
            rsa = ec_generate_key(u"low")
            f.write("%(id)s %(ip)s %(port)d %(public_key)s %(private_key)s\n" % \
                          {'id': i+1, #'peer-%05d' % i,
                           'ip': '0.0.0.0',
                           'port': 12000 + i,
                           'public_key': ec_to_public_bin(rsa).encode("HEX"),
                           'private_key': ec_to_private_bin(rsa).encode("HEX")
                           }
                          )
    for node in get_nodes(peers_directory):
        open(node + "/data/bartercast.log", "w").close()
        open(node + "/data/availability.log", "w").close()
示例#7
0
    def run(self):
        ec = ec_generate_key(u"low")                    
        self._my_member = Member.get_instance(ec_to_public_bin(ec), ec_to_private_bin(ec), sync_with_database=True)

        self.caller(self.test_incoming_channel_propagate)
        self.caller(self.test_outgoing_channel_propagate)
示例#8
0
    def run(self):
        ec = ec_generate_key(u"low")
        self._my_member = Member.get_instance(ec_to_public_bin(ec), ec_to_private_bin(ec), sync_with_database=True)

        self.caller(self.test_incoming_barter_record)
示例#9
0
if __name__ == "__main__":
    from optparse import OptionParser
    parser = OptionParser()
    parser.add_option(
        "--total-peers",
        help=
        "Total number of peers to generate ip:port and key combinations. Default 50",
        type=int,
        default=50)
    parser.add_option(
        "--port-start",
        help="Port number to start assigning from. Default 12000",
        default=12000)
    parser.add_option("-o",
                      help="Output file. Default \"../peers/peer-keys\"",
                      default="../peers/peer-keys")
    options, _ = parser.parse_args()

    with open(options.o, 'wb') as nodefp:
        for i in xrange(0, options.total_peers):
            rsa = ec_generate_key(u"low")
            nodefp.write("%(id)s %(ip)s %(port)d %(public_key)s %(private_key)s\n" % \
                          {'id': i+1, #'peer-%05d' % i,
                           'ip': '0.0.0.0',
                           'port': options.port_start + i,
                           'public_key': ec_to_public_bin(rsa).encode("HEX"),
                           'private_key': ec_to_private_bin(rsa).encode("HEX")
                           }
                          )
示例#10
0
# The list is in the following format:
#
# <peername> <ip> <port> <public key> <private key>
#
# The public and private keys come from an eleptic curve
# key, generated during runtime for each peer
#
# Use ./ec-generator.py --help for help on the parameters
#
from Tribler.dispersy.crypto import ec_generate_key, ec_to_public_bin, ec_to_private_bin

if __name__ == "__main__":
    from optparse import OptionParser
    parser = OptionParser()
    parser.add_option("--total-peers", help="Total number of peers to generate ip:port and key combinations. Default 50", type=int, default=50)
    parser.add_option("--port-start", help="Port number to start assigning from. Default 12000", default=12000)
    parser.add_option("-o", help="Output file. Default \"../peers/peer-keys\"", default="../peers/peer-keys")
    options, _ = parser.parse_args()

    with open(options.o, 'wb') as nodefp:
        for i in xrange(0, options.total_peers):
            rsa = ec_generate_key(u"low")
            nodefp.write("%(id)s %(ip)s %(port)d %(public_key)s %(private_key)s\n" % \
                          {'id': i+1, #'peer-%05d' % i,
                           'ip': '0.0.0.0',
                           'port': options.port_start + i,
                           'public_key': ec_to_public_bin(rsa).encode("HEX"),
                           'private_key': ec_to_private_bin(rsa).encode("HEX")
                           }
                          )