Exemplo n.º 1
0
    def setUp(self):
        config = {
            'session': {
                'datapath': 'data/',
                'learning_rate': 0.01,
                'momentum': 0.9,
                'batch_size_train': 64,
                'batch_size_test': 64,
                'log_interval': 10,
                'sync_interval': 100,
                'priority_interval': 100,
                'name': 'mnist',
                'trial_id': '1608070667'
            },
            'synapse': {
                'target_dim': 10
            },
            'dendrite': {
                'key_dim': 100,
                'topk': 10,
                'stale_emit_filter': 10000,
                'pass_gradients': True,
                'timeout': 0.5,
                'do_backoff': True,
                'max_backoff': 100
            },
            'axon': {
                'local_port': 8091,
                'external_ip': '191.97.53.53'
            },
            'nucleus': {
                'max_workers': 5,
                'queue_timeout': 5,
                'queue_maxsize': 1000
            },
            'metagraph': {
                'chain_endpoint': '206.189.254.5:12345',
                'stale_emit_filter': 10000
            },
            'meta_logger': {
                'log_dir': 'data/'
            },
            'neuron': {
                'keyfile': None,
                'keypair': None
            }
        }

        config = Munch.fromDict(config)
        mnemonic = Keypair.generate_mnemonic()
        keypair = Keypair.create_from_mnemonic(mnemonic)
        config.neuron.keypair = keypair

        self.keypair = Keypair.create_from_mnemonic(mnemonic)
Exemplo n.º 2
0
async def get_uid_for_pubkey__does_not_exist():
    client.connect()
    await client.is_connected()

    random = Keypair.create_from_mnemonic(Keypair.generate_mnemonic())
    uid = await client.get_uid_for_pubkey(random.public_key)
    assert uid is None
Exemplo n.º 3
0
    def test_sign_and_verify_scale_bytes(self):
        mnemonic = Keypair.generate_mnemonic()
        keypair = Keypair.create_from_mnemonic(mnemonic)

        data = ScaleBytes('0x1234')

        signature = keypair.sign(data)
        self.assertTrue(keypair.verify(data, signature))
Exemplo n.º 4
0
    def validate_generate_mnemonic(mnemonic):
        if len(mnemonic) not in [12, 15, 18, 21, 24]:
            print(
                colored(
                    "Mnemonic has invalid size. This should be 12,15,18,21 or 24 words",
                    'red'))
            quit()

        try:
            keypair = Keypair.create_from_mnemonic(" ".join(mnemonic))
            return keypair
        except ValueError as e:
            print(colored(str(e), "red"))
            quit()
Exemplo n.º 5
0
def test_dendrite_backoff():
    _config = Munch.fromDict(config.copy())
    _config.dendrite.do_backoff = True
    _config.dendrite.max_backoff = 1
    _mnemonic = Keypair.generate_mnemonic()
    _keypair = Keypair.create_from_mnemonic(_mnemonic)
    _dendrite = bittensor.dendrite.Dendrite(_config, metagraph)
    _neuron_pb2 = bittensor_pb2.Neuron(
        version=bittensor.__version__,
        public_key=_keypair.public_key,
        address='0.0.0.0',
        port=12345,
    )

    # Add a quick sleep here, it appears that this test is intermittent, likely based on the asyncio operations of past tests.
    # This forces the test to sleep a little while until the dust settles.
    # Bandaid patch, TODO(unconst): fix this.

    time.sleep(5)
    # Normal call.
    x = torch.rand(3, 3, bittensor.__network_dim__)
    out, ops = _dendrite.forward_tensor([_neuron_pb2], [x])
    assert ops[0].item() == bittensor_pb2.ReturnCode.Unavailable
    assert list(out[0].shape) == [3, 3, bittensor.__network_dim__]

    # Backoff call.
    x = torch.rand(3, 3, bittensor.__network_dim__)
    out, ops = _dendrite.forward_tensor([_neuron_pb2], [x])
    assert ops[0].item() == bittensor_pb2.ReturnCode.Backoff
    assert list(out[0].shape) == [3, 3, bittensor.__network_dim__]

    # Normal call.
    x = torch.rand(3, 3, bittensor.__network_dim__)
    out, ops = _dendrite.forward_tensor([_neuron_pb2], [x])
    assert ops[0].item() == bittensor_pb2.ReturnCode.Unavailable
    assert list(out[0].shape) == [3, 3, bittensor.__network_dim__]

    # Backoff call.
    x = torch.rand(3, 3, bittensor.__network_dim__)
    out, ops = _dendrite.forward_tensor([_neuron_pb2], [x])
    assert ops[0].item() == bittensor_pb2.ReturnCode.Backoff
    assert list(out[0].shape) == [3, 3, bittensor.__network_dim__]
Exemplo n.º 6
0
 def __create_keypair() -> Keypair:
     return Keypair.create_from_mnemonic(Keypair.generate_mnemonic())
Exemplo n.º 7
0
 def gen_new_key(words):
     mnemonic = Keypair.generate_mnemonic(words)
     keypair = Keypair.create_from_mnemonic(mnemonic)
     return keypair
Exemplo n.º 8
0
def generate_keypair():
    return Keypair.create_from_mnemonic(Keypair.generate_mnemonic())
Exemplo n.º 9
0
    'metagraph': {
        'chain_endpoint': '206.189.254.5:12345',
        'stale_emit_filter': 10000
    },
    'meta_logger': {
        'log_dir': 'data/'
    },
    'neuron': {
        'keyfile': None,
        'keypair': None
    }
}

config = Munch.fromDict(config)
mnemonic = Keypair.generate_mnemonic()
keypair = Keypair.create_from_mnemonic(mnemonic)
config.neuron.keypair = keypair
metagraph = Metagraph(config)


def test_convert_weight_order_should_work_last():
    MAX_INT_WEIGHT = 4294967295  # Max weight value on chain.
    metagraph.state.uids = torch.tensor([1, 2, 3, 4])
    metagraph.uid = 4
    weights = [0.1, 0.2, 0.3, 0.4]
    uids, vals = metagraph.convert_weights_to_emit(weights)
    print(uids, vals)
    assert uids == [4, 1, 2, 3]
    assert sum(vals) == MAX_INT_WEIGHT

Exemplo n.º 10
0
    def test_create_sr25519_keypair(self):
        mnemonic = "old leopard transfer rib spatial phone calm indicate online fire caution review"
        keypair = Keypair.create_from_mnemonic(mnemonic, address_type=0)

        self.assertEqual(keypair.ss58_address, "16ADqpMa4yzfmWs3nuTSMhfZ2ckeGtvqhPWCNqECEGDcGgU2")
Exemplo n.º 11
0
 def test_sign_and_verify_hex_data(self):
     mnemonic = Keypair.generate_mnemonic()
     keypair = Keypair.create_from_mnemonic(mnemonic)
     signature = keypair.sign("0x1234")
     self.assertTrue(keypair.verify("0x1234", signature))
Exemplo n.º 12
0
 def test_sign_and_verify_invalid_signature_ed25519(self):
     mnemonic = Keypair.generate_mnemonic()
     keypair = Keypair.create_from_mnemonic(mnemonic, crypto_type=KeypairType.ED25519)
     signature = "0x4c291bfb0bb9c1274e86d4b666d13b2ac99a0bacc04a4846fb8ea50bda114677f83c1f164af58fc184451e5140cc8160c4de626163b11451d3bbb208a1889f8a"
     self.assertFalse(keypair.verify("Test123", signature))
Exemplo n.º 13
0
    def test_sign_and_verify_ed25519(self):
        mnemonic = Keypair.generate_mnemonic()
        keypair = Keypair.create_from_mnemonic(mnemonic, crypto_type=KeypairType.ED25519)
        signature = keypair.sign("Test123")

        self.assertTrue(keypair.verify("Test123", signature))
Exemplo n.º 14
0
    def test_create_ed25519_keypair(self):
        mnemonic = "old leopard transfer rib spatial phone calm indicate online fire caution review"
        keypair = Keypair.create_from_mnemonic(mnemonic, address_type=0, crypto_type=KeypairType.ED25519)

        self.assertEqual(keypair.ss58_address, "16dYRUXznyhvWHS1ktUENGfNAEjCawyDzHRtN9AdFnJRc38h")
Exemplo n.º 15
0
 def test_sign_and_verify_invalid_message(self):
     mnemonic = Keypair.generate_mnemonic()
     keypair = Keypair.create_from_mnemonic(mnemonic)
     signature = keypair.sign("Test123")
     self.assertFalse(keypair.verify("OtherMessage", signature))
Exemplo n.º 16
0
 def test_sign_and_verify_invalid_signature(self):
     mnemonic = Keypair.generate_mnemonic()
     keypair = Keypair.create_from_mnemonic(mnemonic)
     signature = "Test"
     self.assertRaises(TypeError, keypair.verify, "Test123", signature)