def create_keychain(self, callback=None):
        print "Generating GUID, this may take a few minutes..."
        g = GUID()
        self.guid = g.guid
        self.signing_key = g.signing_key
        self.verify_key = g.verify_key
        self.db.keys.set_key("guid", self.signing_key.encode(encoder=nacl.encoding.HexEncoder),
                             self.verify_key.encode(encoder=nacl.encoding.HexEncoder))

        self.bitcoin_master_privkey = bitcointools.bip32_master_key(bitcointools.sha256(self.signing_key.encode()))
        self.bitcoin_master_pubkey = bitcointools.bip32_privtopub(self.bitcoin_master_privkey)
        self.db.keys.set_key("bitcoin", self.bitcoin_master_privkey, self.bitcoin_master_pubkey)

        self.encryption_key = self.signing_key.to_curve25519_private_key()
        self.encryption_pubkey = self.verify_key.to_curve25519_public_key()
        if callable(callback):
            callback(self, True)
The guid generation can take a while. While it's doing that we will
dataset/ETHPy150Open OpenBazaar/OpenBazaar-Server/keys/keychain.py/KeyChain.create_keychain