You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
2.7 KiB

from levin.ctypes import *
LEVIN_OK = c_ubyte(0x00)
LEVIN_SIGNATURE = c_uint64(0x0101010101012101) # Bender's nightmare
LEVIN_PACKET_REQUEST = c_uint32(0x00000001)
LEVIN_PACKET_RESPONSE = c_uint32(0x00000002)
LEVIN_DEFAULT_MAX_PACKET_SIZE = 100000000 # 100MB
LEVIN_PROTOCOL_VER_1 = c_uint32(1)
LEVIN_ERROR_CONNECTION = -1
LEVIN_ERROR_CONNECTION_NOT_FOUND = -2
LEVIN_ERROR_CONNECTION_DESTROYED = -3
LEVIN_ERROR_CONNECTION_TIMEDOUT = -4
LEVIN_ERROR_CONNECTION_NO_DUPLEX_PROTOCOL = -5
LEVIN_ERROR_CONNECTION_HANDLER_NOT_DEFINED = -6
LEVIN_ERROR_FORMAT = -7
P2P_SUPPORT_FLAG_FLUFFY_BLOCKS = c_ubyte(0x01)
P2P_SUPPORT_FLAGS = P2P_SUPPORT_FLAG_FLUFFY_BLOCKS
P2P_COMMANDS_POOL_BASE = c_uint32(1000)
P2P_COMMAND_HANDSHAKE = c_uint32(P2P_COMMANDS_POOL_BASE + 1) # carries payload
P2P_COMMAND_TIMED_SYNC = c_uint32(P2P_COMMANDS_POOL_BASE + 2) # carries payload
P2P_COMMAND_PING = c_uint32(P2P_COMMANDS_POOL_BASE + 3)
P2P_COMMAND_REQUEST_STAT_INFO = c_uint32(P2P_COMMANDS_POOL_BASE + 4)
P2P_COMMAND_REQUEST_NETWORK_STATE = c_uint32(P2P_COMMANDS_POOL_BASE + 5)
P2P_COMMAND_REQUEST_PEER_ID = c_uint32(P2P_COMMANDS_POOL_BASE + 6)
P2P_COMMAND_REQUEST_SUPPORT_FLAGS = c_uint32(P2P_COMMANDS_POOL_BASE + 7)
P2P_COMMANDS = {
P2P_COMMAND_HANDSHAKE: 'handshake',
P2P_COMMAND_TIMED_SYNC: 'timed_sync',
P2P_COMMAND_PING: 'ping',
P2P_COMMAND_REQUEST_SUPPORT_FLAGS: 'support_flags',
P2P_COMMAND_REQUEST_STAT_INFO: 'stat_info',
P2P_COMMAND_REQUEST_NETWORK_STATE: 'network_state',
P2P_COMMAND_REQUEST_PEER_ID: 'peer_id',
}
PORTABLE_STORAGE_SIGNATUREA = c_uint32(0x01011101)
PORTABLE_STORAGE_SIGNATUREB = c_uint32(0x01020101)
PORTABLE_STORAGE_FORMAT_VER = c_ubyte(1)
PORTABLE_RAW_SIZE_MARK_MASK = c_ubyte(3)
PORTABLE_RAW_SIZE_MARK_BYTE = c_ubyte(0)
PORTABLE_RAW_SIZE_MARK_WORD = c_ubyte(1)
PORTABLE_RAW_SIZE_MARK_DWORD = c_ubyte(2)
PORTABLE_RAW_SIZE_MARK_INT64 = c_ubyte(3)
MAX_STRING_LEN_POSSIBLE = 2000000000 # do not let string be so big
# data types (boost serialization)
SERIALIZE_TYPE_INT64 = c_ubyte(1)
SERIALIZE_TYPE_INT32 = c_ubyte(2)
SERIALIZE_TYPE_INT16 = c_ubyte(3)
SERIALIZE_TYPE_INT8 = c_ubyte(4)
SERIALIZE_TYPE_UINT64 = c_ubyte(5)
SERIALIZE_TYPE_UINT32 = c_ubyte(6)
SERIALIZE_TYPE_UINT16 = c_ubyte(7)
SERIALIZE_TYPE_UINT8 = c_ubyte(8)
SERIALIZE_TYPE_DOUBLE = c_ubyte(9)
SERIALIZE_TYPE_STRING = c_ubyte(10)
SERIALIZE_TYPE_BOOL = c_ubyte(11)
SERIALIZE_TYPE_OBJECT = c_ubyte(12)
SERIALIZE_TYPE_ARRAY = c_ubyte(13)
SERIALIZE_FLAG_ARRAY = c_ubyte(0x80)
# (src/p2p/net_node.inl:410)
SEED_NODES = [
("212.83.175.67", 18080),
("107.152.130.98", 18080),
("5.9.100.248", 18080),
("163.172.182.165", 18080),
("161.67.132.39", 18080),
("198.74.231.92", 18080),
("195.154.123.123", 18080),
("212.83.172.165", 18080),
]