diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index a6379c141..df2988216 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -81,8 +81,6 @@ jobs: - claims - takeovers - transactions - - claims_legacy_search - - takeovers_legacy_search - other steps: - name: Configure sysctl limits diff --git a/lbry/extras/daemon/daemon.py b/lbry/extras/daemon/daemon.py index bb05a7b02..71882a542 100644 --- a/lbry/extras/daemon/daemon.py +++ b/lbry/extras/daemon/daemon.py @@ -196,61 +196,6 @@ def paginate_list(items: List, page: Optional[int], page_size: Optional[int]): } -def fix_kwargs_for_hub(**kwargs): - repeated_fields = {"media_type", "stream_type", "claim_type"} - value_fields = {"tx_nout", "has_source", "is_signature_valid"} - opcodes = {'=': 0, '<=': 1, '>=': 2, '<': 3, '>': 4} - for key, value in list(kwargs.items()): - if value in (None, [], False): - kwargs.pop(key) - continue - if key in REPLACEMENTS: - kwargs[REPLACEMENTS[key]] = kwargs.pop(key) - key = REPLACEMENTS[key] - - if key == "normalized_name": - kwargs[key] = normalize_name(value) - if key == "limit_claims_per_channel": - value = kwargs.pop("limit_claims_per_channel") or 0 - if value > 0: - kwargs["limit_claims_per_channel"] = value - elif key == "invalid_channel_signature": - kwargs["is_signature_valid"] = {"value": not kwargs.pop("invalid_channel_signature")} - elif key == "has_no_source": - kwargs["has_source"] = {"value": not kwargs.pop("has_no_source")} - elif key in value_fields: - kwargs[key] = {"value": value} if not isinstance(value, dict) else value - elif key in repeated_fields and isinstance(value, str): - kwargs[key] = [value] - elif key in ("claim_id", "channel_id"): - kwargs[key] = {"invert": False, "value": [kwargs[key]]} - elif key in ("claim_ids", "channel_ids"): - kwargs[key[:-1]] = {"invert": False, "value": kwargs.pop(key)} - elif key == "not_channel_ids": - kwargs["channel_id"] = {"invert": True, "value": kwargs.pop("not_channel_ids")} - elif key in MY_RANGE_FIELDS: - constraints = [] - for val in value if isinstance(value, list) else [value]: - operator = '=' - if isinstance(val, str) and val[0] in opcodes: - operator_length = 2 if val[:2] in opcodes else 1 - operator, val = val[:operator_length], val[operator_length:] - val = [int(val if key != 'fee_amount' else Decimal(val)*1000)] - constraints.append({"op": opcodes[operator], "value": val}) - kwargs[key] = constraints - elif key == 'order_by': # TODO: remove this after removing support for old trending args from the api - value = value if isinstance(value, list) else [value] - new_value = [] - for new_v in value: - migrated = new_v if new_v not in ( - 'trending_mixed', 'trending_local', 'trending_global', 'trending_group' - ) else 'trending_score' - if migrated not in new_value: - new_value.append(migrated) - kwargs[key] = new_value - return kwargs - - DHT_HAS_CONTACTS = "dht_has_contacts" @@ -2673,42 +2618,27 @@ class Daemon(metaclass=JSONRPCServerType): Returns: {Paginated[Output]} """ - if self.ledger.config.get('use_go_hub'): - host = self.ledger.network.client.server[0] - port = "50051" - kwargs['new_sdk_server'] = f"{host}:{port}" - if kwargs.get("channel"): - channel = kwargs.pop("channel") - channel_obj = (await self.jsonrpc_resolve(channel))[channel] - if isinstance(channel_obj, dict): - # This happens when the channel doesn't exist - kwargs["channel_id"] = "" - else: - kwargs["channel_id"] = channel_obj.claim_id - kwargs = fix_kwargs_for_hub(**kwargs) - else: - # Don't do this if using the hub server, it screws everything up - if "claim_ids" in kwargs and not kwargs["claim_ids"]: - kwargs.pop("claim_ids") - if {'claim_id', 'claim_ids'}.issubset(kwargs): - raise ConflictingInputValueError('claim_id', 'claim_ids') - if kwargs.pop('valid_channel_signature', False): - kwargs['signature_valid'] = 1 - if kwargs.pop('invalid_channel_signature', False): - kwargs['signature_valid'] = 0 - if 'has_no_source' in kwargs: - kwargs['has_source'] = not kwargs.pop('has_no_source') - if 'order_by' in kwargs: # TODO: remove this after removing support for old trending args from the api - value = kwargs.pop('order_by') - value = value if isinstance(value, list) else [value] - new_value = [] - for new_v in value: - migrated = new_v if new_v not in ( - 'trending_mixed', 'trending_local', 'trending_global', 'trending_group' - ) else 'trending_score' - if migrated not in new_value: - new_value.append(migrated) - kwargs['order_by'] = new_value + if "claim_ids" in kwargs and not kwargs["claim_ids"]: + kwargs.pop("claim_ids") + if {'claim_id', 'claim_ids'}.issubset(kwargs): + raise ConflictingInputValueError('claim_id', 'claim_ids') + if kwargs.pop('valid_channel_signature', False): + kwargs['signature_valid'] = 1 + if kwargs.pop('invalid_channel_signature', False): + kwargs['signature_valid'] = 0 + if 'has_no_source' in kwargs: + kwargs['has_source'] = not kwargs.pop('has_no_source') + if 'order_by' in kwargs: # TODO: remove this after removing support for old trending args from the api + value = kwargs.pop('order_by') + value = value if isinstance(value, list) else [value] + new_value = [] + for new_v in value: + migrated = new_v if new_v not in ( + 'trending_mixed', 'trending_local', 'trending_global', 'trending_group' + ) else 'trending_score' + if migrated not in new_value: + new_value.append(migrated) + kwargs['order_by'] = new_value page_num, page_size = abs(kwargs.pop('page', 1)), min(abs(kwargs.pop('page_size', DEFAULT_PAGE_SIZE)), 50) wallet = self.wallet_manager.get_wallet_or_default(kwargs.pop('wallet_id', None)) kwargs.update({'offset': page_size * (page_num - 1), 'limit': page_size}) diff --git a/lbry/schema/result.py b/lbry/schema/result.py index 1b9ef083c..b11a9df36 100644 --- a/lbry/schema/result.py +++ b/lbry/schema/result.py @@ -177,19 +177,6 @@ class Outputs: outputs.blocked, outputs.blocked_total ) - @classmethod - def from_grpc(cls, outputs: OutputsMessage) -> 'Outputs': - txs = set() - for txo_message in chain(outputs.txos, outputs.extra_txos): - if txo_message.WhichOneof('meta') == 'error': - continue - txs.add((hexlify(txo_message.tx_hash[::-1]).decode(), txo_message.height)) - return cls( - outputs.txos, outputs.extra_txos, txs, - outputs.offset, outputs.total, - outputs.blocked, outputs.blocked_total - ) - @classmethod def to_base64(cls, txo_rows, extra_txo_rows, offset=0, total=None, blocked=None) -> str: return base64.b64encode(cls.to_bytes(txo_rows, extra_txo_rows, offset, total, blocked)).decode() diff --git a/lbry/schema/types/v2/hub_pb2.py b/lbry/schema/types/v2/hub_pb2.py deleted file mode 100644 index 1cc0f475e..000000000 --- a/lbry/schema/types/v2/hub_pb2.py +++ /dev/null @@ -1,960 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: hub.proto -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection -from google.protobuf import symbol_database as _symbol_database -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from . import result_pb2 as result__pb2 - - -DESCRIPTOR = _descriptor.FileDescriptor( - name='hub.proto', - package='pb', - syntax='proto3', - serialized_options=b'Z$github.com/lbryio/hub/protobuf/go/pb', - create_key=_descriptor._internal_create_key, - serialized_pb=b'\n\thub.proto\x12\x02pb\x1a\x0cresult.proto\"\x0e\n\x0c\x45mptyMessage\".\n\rServerMessage\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x0c\n\x04port\x18\x02 \x01(\t\"N\n\x0cHelloMessage\x12\x0c\n\x04port\x18\x01 \x01(\t\x12\x0c\n\x04host\x18\x02 \x01(\t\x12\"\n\x07servers\x18\x03 \x03(\x0b\x32\x11.pb.ServerMessage\"0\n\x0fInvertibleField\x12\x0e\n\x06invert\x18\x01 \x01(\x08\x12\r\n\x05value\x18\x02 \x03(\t\"\x1c\n\x0bStringValue\x12\r\n\x05value\x18\x01 \x01(\t\"\x1a\n\tBoolValue\x12\r\n\x05value\x18\x01 \x01(\x08\"\x1c\n\x0bUInt32Value\x12\r\n\x05value\x18\x01 \x01(\r\"j\n\nRangeField\x12\x1d\n\x02op\x18\x01 \x01(\x0e\x32\x11.pb.RangeField.Op\x12\r\n\x05value\x18\x02 \x03(\x05\".\n\x02Op\x12\x06\n\x02\x45Q\x10\x00\x12\x07\n\x03LTE\x10\x01\x12\x07\n\x03GTE\x10\x02\x12\x06\n\x02LT\x10\x03\x12\x06\n\x02GT\x10\x04\"\x8e\x0c\n\rSearchRequest\x12%\n\x08\x63laim_id\x18\x01 \x01(\x0b\x32\x13.pb.InvertibleField\x12\'\n\nchannel_id\x18\x02 \x01(\x0b\x32\x13.pb.InvertibleField\x12\x0c\n\x04text\x18\x03 \x01(\t\x12\r\n\x05limit\x18\x04 \x01(\x05\x12\x10\n\x08order_by\x18\x05 \x03(\t\x12\x0e\n\x06offset\x18\x06 \x01(\r\x12\x16\n\x0eis_controlling\x18\x07 \x01(\x08\x12\x1d\n\x15last_take_over_height\x18\x08 \x01(\t\x12\x12\n\nclaim_name\x18\t \x01(\t\x12\x17\n\x0fnormalized_name\x18\n \x01(\t\x12#\n\x0btx_position\x18\x0b \x03(\x0b\x32\x0e.pb.RangeField\x12\x1e\n\x06\x61mount\x18\x0c \x03(\x0b\x32\x0e.pb.RangeField\x12!\n\ttimestamp\x18\r \x03(\x0b\x32\x0e.pb.RangeField\x12*\n\x12\x63reation_timestamp\x18\x0e \x03(\x0b\x32\x0e.pb.RangeField\x12\x1e\n\x06height\x18\x0f \x03(\x0b\x32\x0e.pb.RangeField\x12\'\n\x0f\x63reation_height\x18\x10 \x03(\x0b\x32\x0e.pb.RangeField\x12)\n\x11\x61\x63tivation_height\x18\x11 \x03(\x0b\x32\x0e.pb.RangeField\x12)\n\x11\x65xpiration_height\x18\x12 \x03(\x0b\x32\x0e.pb.RangeField\x12$\n\x0crelease_time\x18\x13 \x03(\x0b\x32\x0e.pb.RangeField\x12\x11\n\tshort_url\x18\x14 \x01(\t\x12\x15\n\rcanonical_url\x18\x15 \x01(\t\x12\r\n\x05title\x18\x16 \x01(\t\x12\x0e\n\x06\x61uthor\x18\x17 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x18 \x01(\t\x12\x12\n\nclaim_type\x18\x19 \x03(\t\x12$\n\x0crepost_count\x18\x1a \x03(\x0b\x32\x0e.pb.RangeField\x12\x13\n\x0bstream_type\x18\x1b \x03(\t\x12\x12\n\nmedia_type\x18\x1c \x03(\t\x12\"\n\nfee_amount\x18\x1d \x03(\x0b\x32\x0e.pb.RangeField\x12\x14\n\x0c\x66\x65\x65_currency\x18\x1e \x01(\t\x12 \n\x08\x64uration\x18\x1f \x03(\x0b\x32\x0e.pb.RangeField\x12\x19\n\x11reposted_claim_id\x18 \x01(\t\x12#\n\x0b\x63\x65nsor_type\x18! \x03(\x0b\x32\x0e.pb.RangeField\x12\x19\n\x11\x63laims_in_channel\x18\" \x01(\t\x12)\n\x12is_signature_valid\x18$ \x01(\x0b\x32\r.pb.BoolValue\x12(\n\x10\x65\x66\x66\x65\x63tive_amount\x18% \x03(\x0b\x32\x0e.pb.RangeField\x12&\n\x0esupport_amount\x18& \x03(\x0b\x32\x0e.pb.RangeField\x12&\n\x0etrending_score\x18\' \x03(\x0b\x32\x0e.pb.RangeField\x12\r\n\x05tx_id\x18+ \x01(\t\x12 \n\x07tx_nout\x18, \x01(\x0b\x32\x0f.pb.UInt32Value\x12\x11\n\tsignature\x18- \x01(\t\x12\x18\n\x10signature_digest\x18. \x01(\t\x12\x18\n\x10public_key_bytes\x18/ \x01(\t\x12\x15\n\rpublic_key_id\x18\x30 \x01(\t\x12\x10\n\x08\x61ny_tags\x18\x31 \x03(\t\x12\x10\n\x08\x61ll_tags\x18\x32 \x03(\t\x12\x10\n\x08not_tags\x18\x33 \x03(\t\x12\x1d\n\x15has_channel_signature\x18\x34 \x01(\x08\x12!\n\nhas_source\x18\x35 \x01(\x0b\x32\r.pb.BoolValue\x12 \n\x18limit_claims_per_channel\x18\x36 \x01(\x05\x12\x15\n\rany_languages\x18\x37 \x03(\t\x12\x15\n\rall_languages\x18\x38 \x03(\t\x12\x19\n\x11remove_duplicates\x18\x39 \x01(\x08\x12\x11\n\tno_totals\x18: \x01(\x08\x12\x0f\n\x07sd_hash\x18; \x01(\t2\x88\x03\n\x03Hub\x12*\n\x06Search\x12\x11.pb.SearchRequest\x1a\x0b.pb.Outputs\"\x00\x12+\n\x04Ping\x12\x10.pb.EmptyMessage\x1a\x0f.pb.StringValue\"\x00\x12-\n\x05Hello\x12\x10.pb.HelloMessage\x1a\x10.pb.HelloMessage\"\x00\x12/\n\x07\x41\x64\x64Peer\x12\x11.pb.ServerMessage\x1a\x0f.pb.StringValue\"\x00\x12\x35\n\rPeerSubscribe\x12\x11.pb.ServerMessage\x1a\x0f.pb.StringValue\"\x00\x12.\n\x07Version\x12\x10.pb.EmptyMessage\x1a\x0f.pb.StringValue\"\x00\x12/\n\x08\x46\x65\x61tures\x12\x10.pb.EmptyMessage\x1a\x0f.pb.StringValue\"\x00\x12\x30\n\tBroadcast\x12\x10.pb.EmptyMessage\x1a\x0f.pb.UInt32Value\"\x00\x42&Z$github.com/lbryio/hub/protobuf/go/pbb\x06proto3' - , - dependencies=[result__pb2.DESCRIPTOR,]) - - - -_RANGEFIELD_OP = _descriptor.EnumDescriptor( - name='Op', - full_name='pb.RangeField.Op', - filename=None, - file=DESCRIPTOR, - create_key=_descriptor._internal_create_key, - values=[ - _descriptor.EnumValueDescriptor( - name='EQ', index=0, number=0, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='LTE', index=1, number=1, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='GTE', index=2, number=2, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='LT', index=3, number=3, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='GT', index=4, number=4, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - ], - containing_type=None, - serialized_options=None, - serialized_start=373, - serialized_end=419, -) -_sym_db.RegisterEnumDescriptor(_RANGEFIELD_OP) - - -_EMPTYMESSAGE = _descriptor.Descriptor( - name='EmptyMessage', - full_name='pb.EmptyMessage', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=31, - serialized_end=45, -) - - -_SERVERMESSAGE = _descriptor.Descriptor( - name='ServerMessage', - full_name='pb.ServerMessage', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='address', full_name='pb.ServerMessage.address', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='port', full_name='pb.ServerMessage.port', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=47, - serialized_end=93, -) - - -_HELLOMESSAGE = _descriptor.Descriptor( - name='HelloMessage', - full_name='pb.HelloMessage', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='port', full_name='pb.HelloMessage.port', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='host', full_name='pb.HelloMessage.host', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='servers', full_name='pb.HelloMessage.servers', index=2, - number=3, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=95, - serialized_end=173, -) - - -_INVERTIBLEFIELD = _descriptor.Descriptor( - name='InvertibleField', - full_name='pb.InvertibleField', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='invert', full_name='pb.InvertibleField.invert', index=0, - number=1, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='value', full_name='pb.InvertibleField.value', index=1, - number=2, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=175, - serialized_end=223, -) - - -_STRINGVALUE = _descriptor.Descriptor( - name='StringValue', - full_name='pb.StringValue', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='value', full_name='pb.StringValue.value', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=225, - serialized_end=253, -) - - -_BOOLVALUE = _descriptor.Descriptor( - name='BoolValue', - full_name='pb.BoolValue', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='value', full_name='pb.BoolValue.value', index=0, - number=1, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=255, - serialized_end=281, -) - - -_UINT32VALUE = _descriptor.Descriptor( - name='UInt32Value', - full_name='pb.UInt32Value', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='value', full_name='pb.UInt32Value.value', index=0, - number=1, type=13, cpp_type=3, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=283, - serialized_end=311, -) - - -_RANGEFIELD = _descriptor.Descriptor( - name='RangeField', - full_name='pb.RangeField', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='op', full_name='pb.RangeField.op', index=0, - number=1, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='value', full_name='pb.RangeField.value', index=1, - number=2, type=5, cpp_type=1, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - _RANGEFIELD_OP, - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=313, - serialized_end=419, -) - - -_SEARCHREQUEST = _descriptor.Descriptor( - name='SearchRequest', - full_name='pb.SearchRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='claim_id', full_name='pb.SearchRequest.claim_id', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='channel_id', full_name='pb.SearchRequest.channel_id', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='text', full_name='pb.SearchRequest.text', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='limit', full_name='pb.SearchRequest.limit', index=3, - number=4, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='order_by', full_name='pb.SearchRequest.order_by', index=4, - number=5, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='offset', full_name='pb.SearchRequest.offset', index=5, - number=6, type=13, cpp_type=3, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='is_controlling', full_name='pb.SearchRequest.is_controlling', index=6, - number=7, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='last_take_over_height', full_name='pb.SearchRequest.last_take_over_height', index=7, - number=8, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='claim_name', full_name='pb.SearchRequest.claim_name', index=8, - number=9, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='normalized_name', full_name='pb.SearchRequest.normalized_name', index=9, - number=10, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='tx_position', full_name='pb.SearchRequest.tx_position', index=10, - number=11, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='amount', full_name='pb.SearchRequest.amount', index=11, - number=12, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='timestamp', full_name='pb.SearchRequest.timestamp', index=12, - number=13, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='creation_timestamp', full_name='pb.SearchRequest.creation_timestamp', index=13, - number=14, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='height', full_name='pb.SearchRequest.height', index=14, - number=15, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='creation_height', full_name='pb.SearchRequest.creation_height', index=15, - number=16, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='activation_height', full_name='pb.SearchRequest.activation_height', index=16, - number=17, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='expiration_height', full_name='pb.SearchRequest.expiration_height', index=17, - number=18, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='release_time', full_name='pb.SearchRequest.release_time', index=18, - number=19, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='short_url', full_name='pb.SearchRequest.short_url', index=19, - number=20, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='canonical_url', full_name='pb.SearchRequest.canonical_url', index=20, - number=21, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='title', full_name='pb.SearchRequest.title', index=21, - number=22, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='author', full_name='pb.SearchRequest.author', index=22, - number=23, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='description', full_name='pb.SearchRequest.description', index=23, - number=24, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='claim_type', full_name='pb.SearchRequest.claim_type', index=24, - number=25, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='repost_count', full_name='pb.SearchRequest.repost_count', index=25, - number=26, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='stream_type', full_name='pb.SearchRequest.stream_type', index=26, - number=27, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='media_type', full_name='pb.SearchRequest.media_type', index=27, - number=28, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='fee_amount', full_name='pb.SearchRequest.fee_amount', index=28, - number=29, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='fee_currency', full_name='pb.SearchRequest.fee_currency', index=29, - number=30, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='duration', full_name='pb.SearchRequest.duration', index=30, - number=31, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='reposted_claim_id', full_name='pb.SearchRequest.reposted_claim_id', index=31, - number=32, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='censor_type', full_name='pb.SearchRequest.censor_type', index=32, - number=33, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='claims_in_channel', full_name='pb.SearchRequest.claims_in_channel', index=33, - number=34, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='is_signature_valid', full_name='pb.SearchRequest.is_signature_valid', index=34, - number=36, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='effective_amount', full_name='pb.SearchRequest.effective_amount', index=35, - number=37, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='support_amount', full_name='pb.SearchRequest.support_amount', index=36, - number=38, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='trending_score', full_name='pb.SearchRequest.trending_score', index=37, - number=39, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='tx_id', full_name='pb.SearchRequest.tx_id', index=38, - number=43, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='tx_nout', full_name='pb.SearchRequest.tx_nout', index=39, - number=44, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='signature', full_name='pb.SearchRequest.signature', index=40, - number=45, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='signature_digest', full_name='pb.SearchRequest.signature_digest', index=41, - number=46, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='public_key_bytes', full_name='pb.SearchRequest.public_key_bytes', index=42, - number=47, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='public_key_id', full_name='pb.SearchRequest.public_key_id', index=43, - number=48, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='any_tags', full_name='pb.SearchRequest.any_tags', index=44, - number=49, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='all_tags', full_name='pb.SearchRequest.all_tags', index=45, - number=50, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='not_tags', full_name='pb.SearchRequest.not_tags', index=46, - number=51, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='has_channel_signature', full_name='pb.SearchRequest.has_channel_signature', index=47, - number=52, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='has_source', full_name='pb.SearchRequest.has_source', index=48, - number=53, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='limit_claims_per_channel', full_name='pb.SearchRequest.limit_claims_per_channel', index=49, - number=54, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='any_languages', full_name='pb.SearchRequest.any_languages', index=50, - number=55, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='all_languages', full_name='pb.SearchRequest.all_languages', index=51, - number=56, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='remove_duplicates', full_name='pb.SearchRequest.remove_duplicates', index=52, - number=57, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='no_totals', full_name='pb.SearchRequest.no_totals', index=53, - number=58, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='sd_hash', full_name='pb.SearchRequest.sd_hash', index=54, - number=59, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=422, - serialized_end=1972, -) - -_HELLOMESSAGE.fields_by_name['servers'].message_type = _SERVERMESSAGE -_RANGEFIELD.fields_by_name['op'].enum_type = _RANGEFIELD_OP -_RANGEFIELD_OP.containing_type = _RANGEFIELD -_SEARCHREQUEST.fields_by_name['claim_id'].message_type = _INVERTIBLEFIELD -_SEARCHREQUEST.fields_by_name['channel_id'].message_type = _INVERTIBLEFIELD -_SEARCHREQUEST.fields_by_name['tx_position'].message_type = _RANGEFIELD -_SEARCHREQUEST.fields_by_name['amount'].message_type = _RANGEFIELD -_SEARCHREQUEST.fields_by_name['timestamp'].message_type = _RANGEFIELD -_SEARCHREQUEST.fields_by_name['creation_timestamp'].message_type = _RANGEFIELD -_SEARCHREQUEST.fields_by_name['height'].message_type = _RANGEFIELD -_SEARCHREQUEST.fields_by_name['creation_height'].message_type = _RANGEFIELD -_SEARCHREQUEST.fields_by_name['activation_height'].message_type = _RANGEFIELD -_SEARCHREQUEST.fields_by_name['expiration_height'].message_type = _RANGEFIELD -_SEARCHREQUEST.fields_by_name['release_time'].message_type = _RANGEFIELD -_SEARCHREQUEST.fields_by_name['repost_count'].message_type = _RANGEFIELD -_SEARCHREQUEST.fields_by_name['fee_amount'].message_type = _RANGEFIELD -_SEARCHREQUEST.fields_by_name['duration'].message_type = _RANGEFIELD -_SEARCHREQUEST.fields_by_name['censor_type'].message_type = _RANGEFIELD -_SEARCHREQUEST.fields_by_name['is_signature_valid'].message_type = _BOOLVALUE -_SEARCHREQUEST.fields_by_name['effective_amount'].message_type = _RANGEFIELD -_SEARCHREQUEST.fields_by_name['support_amount'].message_type = _RANGEFIELD -_SEARCHREQUEST.fields_by_name['trending_score'].message_type = _RANGEFIELD -_SEARCHREQUEST.fields_by_name['tx_nout'].message_type = _UINT32VALUE -_SEARCHREQUEST.fields_by_name['has_source'].message_type = _BOOLVALUE -DESCRIPTOR.message_types_by_name['EmptyMessage'] = _EMPTYMESSAGE -DESCRIPTOR.message_types_by_name['ServerMessage'] = _SERVERMESSAGE -DESCRIPTOR.message_types_by_name['HelloMessage'] = _HELLOMESSAGE -DESCRIPTOR.message_types_by_name['InvertibleField'] = _INVERTIBLEFIELD -DESCRIPTOR.message_types_by_name['StringValue'] = _STRINGVALUE -DESCRIPTOR.message_types_by_name['BoolValue'] = _BOOLVALUE -DESCRIPTOR.message_types_by_name['UInt32Value'] = _UINT32VALUE -DESCRIPTOR.message_types_by_name['RangeField'] = _RANGEFIELD -DESCRIPTOR.message_types_by_name['SearchRequest'] = _SEARCHREQUEST -_sym_db.RegisterFileDescriptor(DESCRIPTOR) - -EmptyMessage = _reflection.GeneratedProtocolMessageType('EmptyMessage', (_message.Message,), { - 'DESCRIPTOR' : _EMPTYMESSAGE, - '__module__' : 'hub_pb2' - # @@protoc_insertion_point(class_scope:pb.EmptyMessage) - }) -_sym_db.RegisterMessage(EmptyMessage) - -ServerMessage = _reflection.GeneratedProtocolMessageType('ServerMessage', (_message.Message,), { - 'DESCRIPTOR' : _SERVERMESSAGE, - '__module__' : 'hub_pb2' - # @@protoc_insertion_point(class_scope:pb.ServerMessage) - }) -_sym_db.RegisterMessage(ServerMessage) - -HelloMessage = _reflection.GeneratedProtocolMessageType('HelloMessage', (_message.Message,), { - 'DESCRIPTOR' : _HELLOMESSAGE, - '__module__' : 'hub_pb2' - # @@protoc_insertion_point(class_scope:pb.HelloMessage) - }) -_sym_db.RegisterMessage(HelloMessage) - -InvertibleField = _reflection.GeneratedProtocolMessageType('InvertibleField', (_message.Message,), { - 'DESCRIPTOR' : _INVERTIBLEFIELD, - '__module__' : 'hub_pb2' - # @@protoc_insertion_point(class_scope:pb.InvertibleField) - }) -_sym_db.RegisterMessage(InvertibleField) - -StringValue = _reflection.GeneratedProtocolMessageType('StringValue', (_message.Message,), { - 'DESCRIPTOR' : _STRINGVALUE, - '__module__' : 'hub_pb2' - # @@protoc_insertion_point(class_scope:pb.StringValue) - }) -_sym_db.RegisterMessage(StringValue) - -BoolValue = _reflection.GeneratedProtocolMessageType('BoolValue', (_message.Message,), { - 'DESCRIPTOR' : _BOOLVALUE, - '__module__' : 'hub_pb2' - # @@protoc_insertion_point(class_scope:pb.BoolValue) - }) -_sym_db.RegisterMessage(BoolValue) - -UInt32Value = _reflection.GeneratedProtocolMessageType('UInt32Value', (_message.Message,), { - 'DESCRIPTOR' : _UINT32VALUE, - '__module__' : 'hub_pb2' - # @@protoc_insertion_point(class_scope:pb.UInt32Value) - }) -_sym_db.RegisterMessage(UInt32Value) - -RangeField = _reflection.GeneratedProtocolMessageType('RangeField', (_message.Message,), { - 'DESCRIPTOR' : _RANGEFIELD, - '__module__' : 'hub_pb2' - # @@protoc_insertion_point(class_scope:pb.RangeField) - }) -_sym_db.RegisterMessage(RangeField) - -SearchRequest = _reflection.GeneratedProtocolMessageType('SearchRequest', (_message.Message,), { - 'DESCRIPTOR' : _SEARCHREQUEST, - '__module__' : 'hub_pb2' - # @@protoc_insertion_point(class_scope:pb.SearchRequest) - }) -_sym_db.RegisterMessage(SearchRequest) - - -DESCRIPTOR._options = None - -_HUB = _descriptor.ServiceDescriptor( - name='Hub', - full_name='pb.Hub', - file=DESCRIPTOR, - index=0, - serialized_options=None, - create_key=_descriptor._internal_create_key, - serialized_start=1975, - serialized_end=2367, - methods=[ - _descriptor.MethodDescriptor( - name='Search', - full_name='pb.Hub.Search', - index=0, - containing_service=None, - input_type=_SEARCHREQUEST, - output_type=result__pb2._OUTPUTS, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='Ping', - full_name='pb.Hub.Ping', - index=1, - containing_service=None, - input_type=_EMPTYMESSAGE, - output_type=_STRINGVALUE, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='Hello', - full_name='pb.Hub.Hello', - index=2, - containing_service=None, - input_type=_HELLOMESSAGE, - output_type=_HELLOMESSAGE, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='AddPeer', - full_name='pb.Hub.AddPeer', - index=3, - containing_service=None, - input_type=_SERVERMESSAGE, - output_type=_STRINGVALUE, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='PeerSubscribe', - full_name='pb.Hub.PeerSubscribe', - index=4, - containing_service=None, - input_type=_SERVERMESSAGE, - output_type=_STRINGVALUE, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='Version', - full_name='pb.Hub.Version', - index=5, - containing_service=None, - input_type=_EMPTYMESSAGE, - output_type=_STRINGVALUE, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='Features', - full_name='pb.Hub.Features', - index=6, - containing_service=None, - input_type=_EMPTYMESSAGE, - output_type=_STRINGVALUE, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='Broadcast', - full_name='pb.Hub.Broadcast', - index=7, - containing_service=None, - input_type=_EMPTYMESSAGE, - output_type=_UINT32VALUE, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), -]) -_sym_db.RegisterServiceDescriptor(_HUB) - -DESCRIPTOR.services_by_name['Hub'] = _HUB - -# @@protoc_insertion_point(module_scope) diff --git a/lbry/schema/types/v2/hub_pb2_grpc.py b/lbry/schema/types/v2/hub_pb2_grpc.py deleted file mode 100644 index 16fdafe46..000000000 --- a/lbry/schema/types/v2/hub_pb2_grpc.py +++ /dev/null @@ -1,298 +0,0 @@ -# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! -"""Client and server classes corresponding to protobuf-defined services.""" -import grpc - -from . import hub_pb2 as hub__pb2 -from . import result_pb2 as result__pb2 - - -class HubStub(object): - """Missing associated documentation comment in .proto file.""" - - def __init__(self, channel): - """Constructor. - - Args: - channel: A grpc.Channel. - """ - self.Search = channel.unary_unary( - '/pb.Hub/Search', - request_serializer=hub__pb2.SearchRequest.SerializeToString, - response_deserializer=result__pb2.Outputs.FromString, - ) - self.Ping = channel.unary_unary( - '/pb.Hub/Ping', - request_serializer=hub__pb2.EmptyMessage.SerializeToString, - response_deserializer=hub__pb2.StringValue.FromString, - ) - self.Hello = channel.unary_unary( - '/pb.Hub/Hello', - request_serializer=hub__pb2.HelloMessage.SerializeToString, - response_deserializer=hub__pb2.HelloMessage.FromString, - ) - self.AddPeer = channel.unary_unary( - '/pb.Hub/AddPeer', - request_serializer=hub__pb2.ServerMessage.SerializeToString, - response_deserializer=hub__pb2.StringValue.FromString, - ) - self.PeerSubscribe = channel.unary_unary( - '/pb.Hub/PeerSubscribe', - request_serializer=hub__pb2.ServerMessage.SerializeToString, - response_deserializer=hub__pb2.StringValue.FromString, - ) - self.Version = channel.unary_unary( - '/pb.Hub/Version', - request_serializer=hub__pb2.EmptyMessage.SerializeToString, - response_deserializer=hub__pb2.StringValue.FromString, - ) - self.Features = channel.unary_unary( - '/pb.Hub/Features', - request_serializer=hub__pb2.EmptyMessage.SerializeToString, - response_deserializer=hub__pb2.StringValue.FromString, - ) - self.Broadcast = channel.unary_unary( - '/pb.Hub/Broadcast', - request_serializer=hub__pb2.EmptyMessage.SerializeToString, - response_deserializer=hub__pb2.UInt32Value.FromString, - ) - - -class HubServicer(object): - """Missing associated documentation comment in .proto file.""" - - def Search(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def Ping(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def Hello(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def AddPeer(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def PeerSubscribe(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def Version(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def Features(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def Broadcast(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - -def add_HubServicer_to_server(servicer, server): - rpc_method_handlers = { - 'Search': grpc.unary_unary_rpc_method_handler( - servicer.Search, - request_deserializer=hub__pb2.SearchRequest.FromString, - response_serializer=result__pb2.Outputs.SerializeToString, - ), - 'Ping': grpc.unary_unary_rpc_method_handler( - servicer.Ping, - request_deserializer=hub__pb2.EmptyMessage.FromString, - response_serializer=hub__pb2.StringValue.SerializeToString, - ), - 'Hello': grpc.unary_unary_rpc_method_handler( - servicer.Hello, - request_deserializer=hub__pb2.HelloMessage.FromString, - response_serializer=hub__pb2.HelloMessage.SerializeToString, - ), - 'AddPeer': grpc.unary_unary_rpc_method_handler( - servicer.AddPeer, - request_deserializer=hub__pb2.ServerMessage.FromString, - response_serializer=hub__pb2.StringValue.SerializeToString, - ), - 'PeerSubscribe': grpc.unary_unary_rpc_method_handler( - servicer.PeerSubscribe, - request_deserializer=hub__pb2.ServerMessage.FromString, - response_serializer=hub__pb2.StringValue.SerializeToString, - ), - 'Version': grpc.unary_unary_rpc_method_handler( - servicer.Version, - request_deserializer=hub__pb2.EmptyMessage.FromString, - response_serializer=hub__pb2.StringValue.SerializeToString, - ), - 'Features': grpc.unary_unary_rpc_method_handler( - servicer.Features, - request_deserializer=hub__pb2.EmptyMessage.FromString, - response_serializer=hub__pb2.StringValue.SerializeToString, - ), - 'Broadcast': grpc.unary_unary_rpc_method_handler( - servicer.Broadcast, - request_deserializer=hub__pb2.EmptyMessage.FromString, - response_serializer=hub__pb2.UInt32Value.SerializeToString, - ), - } - generic_handler = grpc.method_handlers_generic_handler( - 'pb.Hub', rpc_method_handlers) - server.add_generic_rpc_handlers((generic_handler,)) - - - # This class is part of an EXPERIMENTAL API. -class Hub(object): - """Missing associated documentation comment in .proto file.""" - - @staticmethod - def Search(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/pb.Hub/Search', - hub__pb2.SearchRequest.SerializeToString, - result__pb2.Outputs.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def Ping(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/pb.Hub/Ping', - hub__pb2.EmptyMessage.SerializeToString, - hub__pb2.StringValue.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def Hello(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/pb.Hub/Hello', - hub__pb2.HelloMessage.SerializeToString, - hub__pb2.HelloMessage.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def AddPeer(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/pb.Hub/AddPeer', - hub__pb2.ServerMessage.SerializeToString, - hub__pb2.StringValue.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def PeerSubscribe(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/pb.Hub/PeerSubscribe', - hub__pb2.ServerMessage.SerializeToString, - hub__pb2.StringValue.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def Version(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/pb.Hub/Version', - hub__pb2.EmptyMessage.SerializeToString, - hub__pb2.StringValue.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def Features(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/pb.Hub/Features', - hub__pb2.EmptyMessage.SerializeToString, - hub__pb2.StringValue.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def Broadcast(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/pb.Hub/Broadcast', - hub__pb2.EmptyMessage.SerializeToString, - hub__pb2.UInt32Value.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/lbry/schema/types/v2/result_pb2_grpc.py b/lbry/schema/types/v2/result_pb2_grpc.py deleted file mode 100644 index 2daafffeb..000000000 --- a/lbry/schema/types/v2/result_pb2_grpc.py +++ /dev/null @@ -1,4 +0,0 @@ -# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! -"""Client and server classes corresponding to protobuf-defined services.""" -import grpc - diff --git a/lbry/testcase.py b/lbry/testcase.py index f6520dcef..6526845cd 100644 --- a/lbry/testcase.py +++ b/lbry/testcase.py @@ -19,7 +19,7 @@ from lbry.conf import Config from lbry.wallet.util import satoshis_to_coins from lbry.wallet.dewies import lbc_to_dewies from lbry.wallet.orchstr8 import Conductor -from lbry.wallet.orchstr8.node import LBCWalletNode, WalletNode, HubNode +from lbry.wallet.orchstr8.node import LBCWalletNode, WalletNode from lbry.schema.claim import Claim from lbry.extras.daemon.daemon import Daemon, jsonrpc_dumps_pretty @@ -237,7 +237,6 @@ class IntegrationTestCase(AsyncioTestCase): super().__init__(*args, **kwargs) self.conductor: Optional[Conductor] = None self.blockchain: Optional[LBCWalletNode] = None - self.hub: Optional[HubNode] = None self.wallet_node: Optional[WalletNode] = None self.manager: Optional[WalletManager] = None self.ledger: Optional[Ledger] = None @@ -254,10 +253,7 @@ class IntegrationTestCase(AsyncioTestCase): self.addCleanup(self.conductor.stop_spv) await self.conductor.start_wallet() self.addCleanup(self.conductor.stop_wallet) - await self.conductor.start_hub() - self.addCleanup(self.conductor.stop_hub) self.blockchain = self.conductor.lbcwallet_node - self.hub = self.conductor.hub_node self.wallet_node = self.conductor.wallet_node self.manager = self.wallet_node.manager self.ledger = self.wallet_node.ledger diff --git a/lbry/wallet/ledger.py b/lbry/wallet/ledger.py index 2ecd81bd5..2baa0affd 100644 --- a/lbry/wallet/ledger.py +++ b/lbry/wallet/ledger.py @@ -780,13 +780,9 @@ class Ledger(metaclass=LedgerRegistry): include_is_my_output=False, include_sent_supports=False, include_sent_tips=False, - include_received_tips=False, - hub_server=False) -> Tuple[List[Output], dict, int, int]: + include_received_tips=False) -> Tuple[List[Output], dict, int, int]: encoded_outputs = await query - if hub_server: - outputs = Outputs.from_grpc(encoded_outputs) - else: - outputs = Outputs.from_base64(encoded_outputs or '') # TODO: why is the server returning None? + outputs = Outputs.from_base64(encoded_outputs or '') # TODO: why is the server returning None? txs: List[Transaction] = [] if len(outputs.txs) > 0: async for tx in self.request_transactions(tuple(outputs.txs), cached=True): @@ -862,13 +858,10 @@ class Ledger(metaclass=LedgerRegistry): txo.received_tips = tips return txos, blocked, outputs.offset, outputs.total - async def resolve(self, accounts, urls, new_sdk_server=None, **kwargs): + async def resolve(self, accounts, urls, **kwargs): txos = [] urls_copy = list(urls) - if new_sdk_server: - resolve = partial(self.network.new_resolve, new_sdk_server) - else: - resolve = partial(self.network.retriable_call, self.network.resolve) + resolve = partial(self.network.retriable_call, self.network.resolve) while urls_copy: batch, urls_copy = urls_copy[:100], urls_copy[100:] txos.extend( @@ -893,17 +886,14 @@ class Ledger(metaclass=LedgerRegistry): return await self.network.sum_supports(new_sdk_server, **kwargs) async def claim_search( - self, accounts, include_purchase_receipt=False, include_is_my_output=False, - new_sdk_server=None, **kwargs) -> Tuple[List[Output], dict, int, int]: - if new_sdk_server: - claim_search = partial(self.network.new_claim_search, new_sdk_server) - else: - claim_search = self.network.claim_search + self, accounts, + include_purchase_receipt=False, + include_is_my_output=False, + **kwargs) -> Tuple[List[Output], dict, int, int]: return await self._inflate_outputs( - claim_search(**kwargs), accounts, + self.network.claim_search(**kwargs), accounts, include_purchase_receipt=include_purchase_receipt, - include_is_my_output=include_is_my_output, - hub_server=new_sdk_server is not None + include_is_my_output=include_is_my_output ) # async def get_claim_by_claim_id(self, accounts, claim_id, **kwargs) -> Output: diff --git a/lbry/wallet/manager.py b/lbry/wallet/manager.py index adf6b3962..96f4b73a2 100644 --- a/lbry/wallet/manager.py +++ b/lbry/wallet/manager.py @@ -183,7 +183,6 @@ class WalletManager: }[config.blockchain_name] ledger_config = { - 'use_go_hub': not strtobool(os.environ.get('ENABLE_LEGACY_SEARCH') or 'yes'), 'auto_connect': True, 'explicit_servers': [], 'hub_timeout': config.hub_timeout, @@ -238,7 +237,6 @@ class WalletManager: async def reset(self): self.ledger.config = { - 'use_go_hub': not strtobool(os.environ.get('ENABLE_LEGACY_SEARCH') or 'yes'), 'auto_connect': True, 'explicit_servers': [], 'default_servers': Config.lbryum_servers.default, diff --git a/lbry/wallet/network.py b/lbry/wallet/network.py index d3c9879d9..55b8b145b 100644 --- a/lbry/wallet/network.py +++ b/lbry/wallet/network.py @@ -7,9 +7,6 @@ from time import perf_counter from collections import defaultdict from typing import Dict, Optional, Tuple import aiohttp -import grpc -from lbry.schema.types.v2 import hub_pb2_grpc -from lbry.schema.types.v2.hub_pb2 import SearchRequest from lbry import __version__ from lbry.utils import resolve_host @@ -393,7 +390,6 @@ class Network: log.warning("Wallet server call timed out, retrying.") except ConnectionError: log.warning("connection error") - raise asyncio.CancelledError() # if we got here, we are shutting down def _update_remote_height(self, header_args): @@ -476,21 +472,6 @@ class Network: def claim_search(self, session_override=None, **kwargs): return self.rpc('blockchain.claimtrie.search', kwargs, False, session_override) - async def new_resolve(self, server, urls): - message = {"method": "resolve", "params": {"urls": urls, "protobuf": True}} - async with self.aiohttp_session.post(server, json=message) as r: - result = await r.json() - return result['result'] - - async def new_claim_search(self, server, **kwargs): - async with grpc.aio.insecure_channel(server) as channel: - stub = hub_pb2_grpc.HubStub(channel) - try: - response = await stub.Search(SearchRequest(**kwargs)) - except grpc.aio.AioRpcError as error: - raise RPCError(error.code(), error.details()) - return response - async def sum_supports(self, server, **kwargs): message = {"method": "support_sum", "params": kwargs} async with self.aiohttp_session.post(server, json=message) as r: diff --git a/lbry/wallet/orchstr8/__init__.py b/lbry/wallet/orchstr8/__init__.py index c8c7b6373..ecdb9ef71 100644 --- a/lbry/wallet/orchstr8/__init__.py +++ b/lbry/wallet/orchstr8/__init__.py @@ -1,5 +1,2 @@ -__hub_url__ = ( - "https://github.com/lbryio/herald/releases/download/v0.2022.01.21.1/hub" -) from lbry.wallet.orchstr8.node import Conductor from lbry.wallet.orchstr8.service import ConductorService diff --git a/lbry/wallet/orchstr8/node.py b/lbry/wallet/orchstr8/node.py index a769ae20b..5842cac9d 100644 --- a/lbry/wallet/orchstr8/node.py +++ b/lbry/wallet/orchstr8/node.py @@ -1,6 +1,5 @@ # pylint: disable=import-error import os -import signal import json import shutil import asyncio @@ -10,7 +9,6 @@ import logging import tempfile import subprocess import platform -from distutils.util import strtobool from binascii import hexlify from typing import Type, Optional @@ -21,7 +19,6 @@ from uuid import uuid4 import lbry from lbry.wallet import Wallet, Ledger, RegTestLedger, WalletManager, Account, BlockHeightEvent from lbry.conf import KnownHubsList, Config -from lbry.wallet.orchstr8 import __hub_url__ log = logging.getLogger(__name__) @@ -62,13 +59,10 @@ class Conductor: self.wallet_node = WalletNode( self.manager_module, RegTestLedger, default_seed=seed ) - self.hub_node = HubNode(__hub_url__, "hub", self.spv_node) - self.lbcd_started = False self.lbcwallet_started = False self.spv_started = False self.wallet_started = False - self.hub_started = False self.log = log.getChild('conductor') @@ -82,17 +76,6 @@ class Conductor: await self.lbcd_node.stop(cleanup) self.lbcd_started = False - async def start_hub(self): - if not self.hub_started: - await self.hub_node.start() - await self.lbcwallet_node.running.wait() - self.hub_started = True - - async def stop_hub(self, cleanup=True): - if self.hub_started: - await self.hub_node.stop(cleanup) - self.hub_started = False - async def start_spv(self): if not self.spv_started: await self.spv_node.start(self.lbcwallet_node) @@ -133,13 +116,11 @@ class Conductor: await self.start_lbcd() await self.start_lbcwallet() await self.start_spv() - await self.start_hub() await self.start_wallet() async def stop(self): all_the_stops = [ self.stop_wallet, - self.stop_hub, self.stop_spv, self.stop_lbcwallet, self.stop_lbcd @@ -184,7 +165,6 @@ class WalletNode: self.manager = self.manager_class.from_config({ 'ledgers': { self.ledger_class.get_id(): { - 'use_go_hub': not strtobool(os.environ.get('ENABLE_LEGACY_SEARCH') or 'yes'), 'api_port': self.port, 'explicit_servers': [(spv_node.hostname, spv_node.port)], 'default_servers': Config.lbryum_servers.default, @@ -693,139 +673,3 @@ class LBCWalletNode: def get_raw_transaction(self, txid): return self._cli_cmnd('getrawtransaction', txid, '1') - - -class HubProcess(asyncio.SubprocessProtocol): - def __init__(self, ready, stopped): - self.ready = ready - self.stopped = stopped - self.log = log.getChild('hub') - self.transport = None - - def pipe_data_received(self, fd, data): - self.stopped.clear() - self.ready.set() - if self.log: - self.log.info(data.decode()) - if b'error' in data.lower(): - self.ready.set() - raise SystemError(data.decode()) - if b'listening on' in data: - self.ready.set() - str_lines = str(data.decode()).split("\n") - for line in str_lines: - if 'releaseTime' in line: - print(line) - - def process_exited(self): - self.ready.clear() - self.stopped.set() - - async def stop(self): - t = asyncio.create_task(self.stopped.wait()) - try: - self.transport.send_signal(signal.SIGINT) - await asyncio.wait_for(t, 3) - # log.warning("stopped go hub") - except asyncio.TimeoutError: - if not t.done(): - t.cancel() - self.transport.terminate() - await self.stopped.wait() - log.warning("terminated go hub") - - -class HubNode: - def __init__(self, url, daemon, spv_node): - self.spv_node = spv_node - self.latest_release_url = url - self.project_dir = os.path.dirname(os.path.dirname(__file__)) - self.bin_dir = os.path.join(self.project_dir, 'bin') - self.daemon_bin = os.path.join(self.bin_dir, daemon) - self.cli_bin = os.path.join(self.bin_dir, daemon) - self.log = log.getChild('hub') - self.transport = None - self.protocol = None - self.hostname = 'localhost' - self.rpcport = 50051 # avoid conflict with default rpc port - self._stopped = asyncio.Event() - self.running = asyncio.Event() - - @property - def stopped(self): - return not self.running.is_set() - - @property - def exists(self): - return ( - os.path.exists(self.cli_bin) and - os.path.exists(self.daemon_bin) - ) - - def download(self): - downloaded_file = os.path.join( - self.bin_dir, - self.latest_release_url[self.latest_release_url.rfind('/')+1:] - ) - - if not os.path.exists(self.bin_dir): - os.mkdir(self.bin_dir) - - if not os.path.exists(downloaded_file): - self.log.info('Downloading: %s', self.latest_release_url) - with urllib.request.urlopen(self.latest_release_url) as response: - with open(downloaded_file, 'wb') as out_file: - shutil.copyfileobj(response, out_file) - - self.log.info('Extracting: %s', downloaded_file) - - if downloaded_file.endswith('.zip'): - with zipfile.ZipFile(downloaded_file) as dotzip: - dotzip.extractall(self.bin_dir) - # zipfile bug https://bugs.python.org/issue15795 - os.chmod(self.cli_bin, 0o755) - os.chmod(self.daemon_bin, 0o755) - - elif downloaded_file.endswith('.tar.gz'): - with tarfile.open(downloaded_file) as tar: - tar.extractall(self.bin_dir) - - os.chmod(self.daemon_bin, 0o755) - - return self.exists - - def ensure(self): - return self.exists or self.download() - - async def start(self): - assert self.ensure() - loop = asyncio.get_event_loop() - asyncio.get_child_watcher().attach_loop(loop) - command = [ - self.daemon_bin, 'serve', '--esindex', self.spv_node.index_name + 'claims', '--debug' - ] - self.log.info(' '.join(command)) - self.protocol = HubProcess(self.running, self._stopped) - try: - self.transport, _ = await loop.subprocess_exec( - lambda: self.protocol, *command - ) - self.protocol.transport = self.transport - except Exception as e: - log.exception('failed to start go hub', exc_info=e) - raise e - await self.protocol.ready.wait() - - async def stop(self, cleanup=True): - try: - if self.protocol: - await self.protocol.stop() - except Exception as e: - log.exception('failed to stop go hub', exc_info=e) - raise e - finally: - if cleanup: - self.cleanup() - - def cleanup(self): - pass diff --git a/scripts/example_update_es.py b/scripts/example_update_es.py deleted file mode 100644 index eef306d09..000000000 --- a/scripts/example_update_es.py +++ /dev/null @@ -1,46 +0,0 @@ -import asyncio -from pprint import pprint - -from elasticsearch import AsyncElasticsearch -from elasticsearch._async.helpers import async_scan, async_bulk - -DB = {} -INDEX = 'claims' - - -async def generate_support_amounts(client: AsyncElasticsearch): - async for doc in async_scan(client): - DB[doc['_id']] = doc['_source']['support_amount'] - if len(DB) > 10: - break - pprint(DB) - - -def generate_support_to_trending(): - for claim_id, amount in DB.items(): - yield {'doc': {"trending_mixed": amount}, '_id': claim_id, '_index': INDEX, '_op_type': 'update'} - - -async def write_trending(client: AsyncElasticsearch): - await async_bulk(client, generate_support_to_trending()) - - -def get_client(host='localhost', port=9201): - hosts = [{'host': host, 'port': port}] - return AsyncElasticsearch(hosts, timeout=port) - - -async def run(): - client = get_client() - await generate_support_amounts(client) - await write_trending(client) - for claim_id, value in DB.items(): - if value > 0: - break - doc = await client.get(INDEX, claim_id) - pprint(doc) - pprint(DB[claim_id]) - await client.close() - - -asyncio.get_event_loop().run_until_complete(run()) \ No newline at end of file diff --git a/setup.cfg b/setup.cfg index 135551a8e..a2e5f9672 100644 --- a/setup.cfg +++ b/setup.cfg @@ -9,7 +9,7 @@ omit = lbry/wallet/orchstr8/ .tox/*/lib/python*/site-packages/lbry/wallet/orchstr8/node.py -[cryptography.*,coincurve.*,pbkdf2, libtorrent] +[cryptography.*,coincurve.*,pbkdf2,libtorrent] ignore_missing_imports = True [pylint] diff --git a/setup.py b/setup.py index 0ffde60bc..c8d3f6018 100644 --- a/setup.py +++ b/setup.py @@ -7,12 +7,6 @@ BASE = os.path.dirname(__file__) with open(os.path.join(BASE, 'README.md'), encoding='utf-8') as fh: long_description = fh.read() - -ROCKSDB = [] -if sys.platform.startswith('linux') or sys.platform.startswith('darwin'): - ROCKSDB.append('lbry-rocksdb==0.8.2') - - setup( name=__name__, version=__version__, @@ -44,21 +38,15 @@ setup( 'cffi==1.13.2', 'cryptography==2.5', 'protobuf==3.17.2', - 'msgpack==0.6.1', 'prometheus_client==0.7.1', 'ecdsa==0.13.3', 'pyyaml==5.3.1', 'docopt==0.6.2', 'hachoir==3.1.2', - 'multidict==4.6.1', 'coincurve==15.0.0', 'pbkdf2==1.3', - 'attrs==18.2.0', - 'pylru==1.1.0', - 'elasticsearch==7.10.1', - 'grpcio==1.38.0', 'filetype==1.0.9', - ] + ROCKSDB, + ], extras_require={ 'torrent': ['lbry-libtorrent'], 'lint': [ diff --git a/tox.ini b/tox.ini index b65cfa80d..6795a8a1a 100644 --- a/tox.ini +++ b/tox.ini @@ -10,7 +10,6 @@ changedir = {toxinidir}/tests setenv = HOME=/tmp ELASTIC_HOST={env:ELASTIC_HOST:localhost} - ENABLE_LEGACY_SEARCH=0 commands = orchstr8 download blockchain: coverage run -p --source={envsitepackagesdir}/lbry -m unittest discover -vv integration.blockchain {posargs} @@ -19,13 +18,3 @@ commands = transactions: coverage run -p --source={envsitepackagesdir}/lbry -m unittest discover -vv integration.transactions {posargs} datanetwork: coverage run -p --source={envsitepackagesdir}/lbry -m unittest discover -vv integration.datanetwork {posargs} other: coverage run -p --source={envsitepackagesdir}/lbry -m unittest discover -vv integration.other {posargs} -[testenv:claims_legacy_search] -setenv = - ENABLE_LEGACY_SEARCH=1 -commands = - coverage run -p --source={envsitepackagesdir}/lbry -m unittest discover -vv integration.claims {posargs} -[testenv:takeovers_legacy_search] -setenv = - ENABLE_LEGACY_SEARCH=1 -commands = - coverage run -p --source={envsitepackagesdir}/lbry -m unittest discover -vv integration.takeovers {posargs}