Торговый бот - какова максимальная нагрузка на сервер Exchange может занять?

Я создал мой собственный альткоинов торговый бот в Питон3. Бот торгует на минутных рынке и является многопоточным. Что делает, что много запросов отправить на сервер биржи.

Я (был) используя Bittrex, как обмен. Хотя она работает, бот некоторым требуется более тонкая настройка. Я был в этом процессе, когда Bittrex заблокировали мой аккаунт, Без объяснения причин. Наверное, я требовал слишком многого от сервера, как потоки рассматриваются как 10 запросов в секунду.

Теперь вопрос: для того, чтобы избежать блокировки, что является приемлемым курсом заявке на такой сервер ?

ТИА

Кристоф

+241
yukiwata 14 нояб. 2018 г., 10:24:42
15 ответов

Мне было интересно, если кто-то советы для работы bitcoind для нескольких пользователей. Я, очевидно, не хотите, чтобы пользователи, чтобы попасть в другой транзакции пользователей. Насколько я могу сказать, мне нужно запустить несколько экземпляров Bitcoind, но это ужасная трата полосы пропускания. Я могу хотя бы поделиться блокчейн между пользователями?

+824
Joxon 03 февр. '09 в 4:24

Вы должны задать этот вопрос blockchain.info поддержка. Здесь никто не может предсказать ближайшее и далекое будущее. Здесь никто не отвечает за сторонние услуги, как blockchain.info

+817
amina 888 30 нояб. 2017 г., 13:40:56

Они достаточно удобным для некоторых реальных сделок? Как легко эскроу, что две сторона может назначить третью сторону для завершения сделки?

+792
axuak 24 авг. 2012 г., 15:18:39

использовать bitaddress.org для создания бумажного кошелька,это дает вам возможность шифрования закрытого ключа (BIP38), а затем распечатать весь бумажник (адрес,паб ключ,зашифрованный закрытый ключ), а также QR-код.

+731
gimba 23 сент. 2013 г., 9:21:36

Биткоин Nordic является биткоин-биржи, которая будет принимать валюту отправили его по почте и использовать эти средства (номинал) для покупки биткоинов. Они принимают фунты стерлингов, евро, доллар, норвежская крона, шведская крона, датская крона. Они могут принять других, если вы свяжетесь с ними заранее.

Я не знаю, примут ли они много монет. Они могли бы, но, возможно, не в discosed цене. Было бы лучше связаться с ними заранее.

Насколько становится нумизматической ценностью для них, вы бы, вероятно, получить лучшее предложение продажи в нумизматических дилеров, а затем, используя эти средства с биткоин-биржи.

+544
OmnipotentEntity 24 мая 2018 г., 20:49:26

Расчет значений Z является достаточно сложной для среднего Джо, так что я сделал проще создать видео-учебник из шагов,

https://www.youtube.com/watch?v=pI3LyFBLlA8


Значения z для приведенного выше примера можно найти на этой странице.

https://2coin.org/index.html?txid=9ec4bc49e828d924af1d1029cacf709431abbde46d59554b62bc270e3b29c4b1

Я также отделил R и S значения, чтобы сделать его проще для вас.

Вы можете найти р, S и Z значения для всех биткоин-транзакциях на этом сайте.

например,

https://2coin.org/index.html?txid=9312ccafb8aa624afe7fb7b4201a0ccc2a14ca2b8b8a3253093b975a6a85a280 https://2coin.org/index.html?txid=a963c57ba8a384bf708d5cf83c932e9174ebd0f82f3820e25dcc8a3d508aed54 https://2coin.org/index.html?txid=19d66411a5aa716a04b37197c11c93c9446a54694a2d2302093d8b0a93ed5d83 https://2coin.org/index.html?txid=9778355a53f295a4ffd592af170badda4e9ad3153e15a4afd76655dac387abb2

Ответ возвращает ответ в формате JSON, которые вы найдете в биткоин основного клиента, а также некоторые дополнительные биты я добавил, что показывают на R,S и Z значения для каждого входного сделки.

например, увидеть SizR, Озг и SigZ узлов ниже.

{
 "rawtx": "01000000028370ef64eb83519fd14f9d74826059b4ce00eae33b5473629486076c5b3bf215000000008c4930460221009bf436ce1f12979ff47b4671f16b06a71e74269005c19178384e9d267e50bbe9022100c7eabd8cf796a78d8a7032f99105cdcb1ae75cd8b518ed4efe14247fb00c9622014104e3896e6cabfa05a332368443877d826efc7ace23019bd5c2bc7497f3711f009e873b1fcc03222f118a6ff696efa9ec9bb3678447aae159491c75468dcc245a6cffffffffb0385cd9a933545628469aa1b7c151b85cc4a087760a300e855af079eacd25c5000000008b48304502210094b12a2dd0f59b3b4b84e6db0eb4ba4460696a4f3abf5cc6e241bbdb08163b45022007eaf632f320b5d9d58f1e8d186ccebabea93bad4a6a282a3c472393fe756bfb014104e3896e6cabfa05a332368443877d826efc7ace23019bd5c2bc7497f3711f009e873b1fcc03222f118a6ff696efa9ec9bb3678447aae159491c75468dcc245a6cffffffff01404b4c00000000001976a91402d8103ac969fe0b92ba04ca8007e729684031b088ac00000000"
}
{
 "txid": "82e5e1689ee396c8416b94c86aed9f4fe793a0fa2fa729df4a8312a287bc2d5e",
 "версии": 1,
 "locktime": 0,
 "Альвин": [
{
 "txid": "15f23b5b6c0786946273543be3ea00ceb4596082749d4fd19f5183eb64ef7083",
 "Uвых": 0,
 "scriptSig": {
 "АСМ": "30460221009bf436ce1f12979ff47b4671f16b06a71e74269005c19178384e9d267e50bbe9022100c7eabd8cf796a78d8a7032f99105cdcb1ae75cd8b518ed4efe14247fb00c9622[ALL] 04e3896e6cabfa05a332368443877d826efc7ace23019bd5c2bc7497f3711f009e873b1fcc03222f118a6ff696efa9ec9bb3678447aae159491c75468dcc245a6c",
 "наговор": "4930460221009bf436ce1f12979ff47b4671f16b06a71e74269005c19178384e9d267e50bbe9022100c7eabd8cf796a78d8a7032f99105cdcb1ae75cd8b518ed4efe14247fb00c9622014104e3896e6cabfa05a332368443877d826efc7ace23019bd5c2bc7497f3711f009e873b1fcc03222f118a6ff696efa9ec9bb3678447aae159491c75468dcc245a6c"
},
 "последовательности": 4294967295,
 "н": 0,
 "адрес": "1KtjBE8yDxoqNTSyLG2re4qtKK19KpvVlt",
 "valueSat": 2500000,
 "значение": 0.025,
 "doubleSpentTxID": нуль,
 "sigR": "009bf436ce1f12979ff47b4671f16b06a71e74269005c19178384e9d267e50bbe9",
 "сигс": "00c7eabd8cf796a78d8a7032f99105cdcb1ae75cd8b518ed4efe14247fb00c9622",
 "sigZ": "9f4503ab6cae01b9fc124e40de9f3ec3cb7a794129aa3a5c2dfec3809f04c354"
},
{
 "txid": "c525cdea79f05a850e300a7687a0c45cb851c1b7a19a4628565433a9d95c38b0",
 "Uвых": 0,
 "scriptSig": {
 "АСМ": "304502210094b12a2dd0f59b3b4b84e6db0eb4ba4460696a4f3abf5cc6e241bbdb08163b45022007eaf632f320b5d9d58f1e8d186ccebabea93bad4a6a282a3c472393fe756bfb[ALL] 04e3896e6cabfa05a332368443877d826efc7ace23019bd5c2bc7497f3711f009e873b1fcc03222f118a6ff696efa9ec9bb3678447aae159491c75468dcc245a6c",
 "наговор": "48304502210094b12a2dd0f59b3b4b84e6db0eb4ba4460696a4f3abf5cc6e241bbdb08163b45022007eaf632f320b5d9d58f1e8d186ccebabea93bad4a6a282a3c472393fe756bfb014104e3896e6cabfa05a332368443877d826efc7ace23019bd5c2bc7497f3711f009e873b1fcc03222f118a6ff696efa9ec9bb3678447aae159491c75468dcc245a6c"
},
 "последовательности": 4294967295,
 "Н": 1,
 "адрес": "1KtjBE8yDxoqNTSyLG2re4qtKK19KpvVlt",
 "valueSat": 2500000,
 "значение": 0.025,
 "doubleSpentTxID": нуль,
 "sigR": "0094b12a2dd0f59b3b4b84e6db0eb4ba4460696a4f3abf5cc6e241bbdb08163b45",
 "сигс": "07eaf632f320b5d9d58f1e8d186ccebabea93bad4a6a282a3c472393fe756bfb",
 "sigZ": "94bbf25ba5b93ba78ee017eff80c986ee4e87804bee5770fae5b486f05608d95"
}
],
 "Uвых": [
{
 "значение": "0.05000000",
 "н": 0,
 "scriptPubKey": {
 "наговор": "76a91402d8103ac969fe0b92ba04ca8007e729684031b088ac",
 "АСМ": "OP_DUP OP_HASH160 02d8103ac969fe0b92ba04ca8007e729684031b0 OP_EQUALVERIFY OP_CHECKSIG",
 "адреса": [
"1G3BjSLWsWH6tbPYs29fYMYaz9k8EStQm"
],
 "тип": "pubkeyhash"
},
 "spentTxId": "9778355a53f295a4ffd592af170badda4e9ad3153e15a4afd76655dac387abb2",
 "spentIndex": 0,
 "spentHeight": 175915
}
],
 "blockhash": "00000000000006467ae1708979d38dcb6d6fcafbab4c6eccf7414da950379243",
 "blockheight": 175915,
 "подтверждений": 309447,
 "время": 1334602008,
 "blocktime": 1334602008,
 "valueOut": 0.05,
 "размер": 405,
 "значение": 0.05,
 "сборы": 0
}

Когда я изучал всю информацию по этой теме, я создал несколько маленький помощник уравнения, которые я активно используемых при проведении экспериментов.

К = ((З + (Х * Р)) / Х) % Н

Х = (((С * К) - З) / Р) % Н

З = ((С * К) - (Х * Р)) % Н

С = ((З + (Х * Р)) / К) % Н

Р = (((С * К) - З) / Х) % Н

В моем выше уравнений,

X-это отдельный шестигранный ключ,

К умноженная на sep256k1 значение г дает ECPoint, кто значение x = Р

Поэтому от R, вы можете проверить, у вас есть правильное значение k, и если у вас есть правильное значение k, то можно получить правильное значение X, которое является шестнадцатеричным закрытого ключа адреса во входной проводке.

А вот некоторые примеры кода C#.

используя системы;
используя системы.Средства LINQ;
используя орг.После установки BouncyCastle.Математика;

SeansECDSAtest пространства имен 
{
 программа класс 
{
 статический недействительным основные(string[] аргументы)
{
 Типа BigInteger Р = нового типа BigInteger(StringToByteArray("00d47ce4c025c35ec440bc81d99834a624875161a26bf56ef7fdc0f5d52f843ad1"));
 Типа BigInteger Ы = новый типа BigInteger(StringToByteArray("0044e1ff2dfd8102cf7a47c21d5c9fd5701610d04953c6836596b4fe9dd2f53e3e"));
 Типа BigInteger з = новый типа BigInteger(StringToByteArray("00c0e2d0a89a348de88fda08211c70d1d7e52ccef2eb9459911bf977d587784c6e"));
 Типа BigInteger х = нового типа BigInteger(StringToByteArray("00c477f9f65c22cce20657faa5b2d1d8122336f851a508a1ed04e479c34985bf96"));
 Типа BigInteger К = нового типа BigInteger(StringToByteArray("007a1a7e52797fc8caaa435d2a4dace39158504bf204fbe19f14dbb427faee50ae"));
 Типа BigInteger Н = нового типа BigInteger(StringToByteArray("00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141"));

 //подтверждающие Р = (((С * К) - З) / х) % н
 ВАР verifyR = С. умножим(к).Вычитание(З).Умножение(Х. ModInverse(Н)).Остат(Н);
 Консоль.Метода WriteLine("Р =" + строка.Функция concat(verifyR.ToByteArrayUnsigned().Выберите(б => б.Метод ToString("Х2"))));

 //подтверждающие С = ((З + (х * р)) / К) % Н
 ВАР проверяет = З. добавить(Х. умножение(Р)).Умножение(К. ModInverse(Н)).Остат(Н);
 Консоль.Метода WriteLine("с =" + строка.Функция concat(проверяет.ToByteArrayUnsigned().Выберите(б => б.Метод ToString("Х2"))));

 //подтверждающие З = ((С * К) - (Х * р)) % н
 ВАР verifyZ = С. умножим(к).Вычитание(Х. Умножение(Р)).Остат(Н);
 Консоль.Метода WriteLine("з =" + строка.Функция concat(verifyZ.ToByteArrayUnsigned().Выберите(б => б.Метод ToString("Х2"))));

 //подтверждающий Х = (((С * К) - З) / Р) % Н
 ВАР verifyX = С. умножим(к).Вычитание(З).Умножение(Р. ModInverse(Н)).Остат(Н);
 Консоль.Метода WriteLine("х =" + строка.Функция concat(verifyX.ToByteArrayUnsigned().Выберите(б => б.Метод ToString("Х2"))));

 //подтверждающие К = ((З + (х * р)) / х) % н
 ВАР verifyK = З. добавить(Х. умножение(Р)).Умножение(С. ModInverse(Н)).Остат(Н);
 Консоль.Метода WriteLine("к =" + строка.Функция concat(verifyK.ToByteArrayUnsigned().Выберите(б => б.Метод ToString("Х2"))));

Консоль.С readline();
}

 публичный статический байт[] StringToByteArray(строковое шестнадцатиричное)
{
 возвращает перечисляемую.Диапазон(0, наговора.Длина)
 .Где(Х => Х % 2 == 0)
 .Выберите(х => конвертировать.ToByte(шестнадц.Подстрока(х, 2), 16))
.Метод toArray();
}
}
}

И тот же код на Python

деф extended_gcd(АА, ББ):
 lastremainder, остаток = АБС(АА), АБС(ББ)
 х, lastx, г, ласты = 0, 1, 1, 0
 а остальные:
 lastremainder, (частное, остаток) = остаток, divmod(lastremainder, остаток)
 х, lastx = lastx - фактор*Х, Х
 г, ласты = ласты - фактор*г, г
 вернуться lastremainder, lastx * (1, Если АА < 0, иначе 1), ласты * (-1, если ВВ < 0, иначе 1)

деф modinv(а, м):
 Г, Х, Y = extended_gcd(а, м)
 если G != 1:
 поднять ValueError
 возврат х % м

Р = 0x00d47ce4c025c35ec440bc81d99834a624875161a26bf56ef7fdc0f5d52f843ad1
Ы = 0x0044e1ff2dfd8102cf7a47c21d5c9fd5701610d04953c6836596b4fe9dd2f53e3e
З = 0x00c0e2d0a89a348de88fda08211c70d1d7e52ccef2eb9459911bf977d587784c6e
Х = 0x00c477f9f65c22cce20657faa5b2d1d8122336f851a508a1ed04e479c34985bf96
К = 0x007a1a7e52797fc8caaa435d2a4dace39158504bf204fbe19f14dbb427faee50ae

Н = 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141

#доказывая Р = (((С * К) - З) / х) % н
печать шестигранные((((С * К) - З) * modinv(х,н)) % н)

#доказывая С = ((З + (х * р)) / К) % Н
печать шестигранные(((З + (х * р)) * modinv(к,N)) % Н)

#доказывая З = ((С * К) - (Х * р)) % н
печать шестигранные(((С * К) - (Х * р)) % н)

#доказывая Х = (((С * К) - З) / Р) % Н
печать шестигранные((((С * К) - З) * modinv(р,n)) % Н)

#доказывая К = ((З + (х * р)) / х) % н
печать шестигранные(((З + (х * р)) * modinv(с,N)) % Н)
+452
Achmad Affandi 20 июн. 2010 г., 0:25:59

xPrivKey является BIP32 расширенного ключа. Это может быть использовано для получения ребенком адресов.

importprivkey ожидает ВИФ бумажник формат импорта.

Для того, чтобы преобразовать из расширенного в сжатом формате, все что вам нужно сделать, это расшифровать из в base58check и захватить последние 32 байта (33 открытых ключей). Увидеть BIP32 - расширенный ключ сериализации и затем закодировать на WIF формат:

$ е "xprv9uHRZZhk6KAJC1avXpDAp4MDc3sQknxdipvvkx8br5nglnv1txvuxt4cv1rgl5hj6kcesndyuhd7owgt11ezg7xnxhrnyesvkzy7d2bhkj7" | base58 -постоянного тока | xxd по -п 0488ade4013442193e8000000047fdacbd0f1097043b78c63c20c34ef4ed9a111d980047ad16282c7ae623614100edb2e14f9ee77d26dd93b4ecede8d16ed408ce149b6cd80b0715a2d911a0afea

Последние 64 символов (32 байта) представляют собой шестнадцатеричные версии закрытым ключом.

edb2e14f9ee77d26dd93b4ecede8d16ed408ce149b6cd80b0715a2d911a0afea

Затем преобразовать в WIF:

$ прив="edb2e14f9ee77d26dd93b4ecede8d16ed408ce149b6cd80b0715a2d911a0afea"
$ # 0х80 для mainnet, 0xef в тестовом режиме
$ pub_suffix=01 # присоеденить 01 если соответствующий открытый ключ сжатые
$ mainnet_prefix=80
$ ext_priv_mainnet=$mainnet_prefix$прив
$ wif_enc_mainnet_compressed=$(е "$ext_priv_mainnet$pub_suffix" | xxd по -р -п | base58 -с)
$ Эхо "ВИФ Mainnet (сжатый): "$wif_enc_mainnet_compressed

ВИФ Mainnet (сжатый): L5BmPijJjrKbiUfG4zbiFKNqkvuJ8usoojmzud7z8dkrotthynat
+417
Thursdays Coming 20 сент. 2010 г., 15:50:04

BTCVault (http://dswd.github.io/btcvault/). Клиент немного старый, но концепция работает отлично.

+400
Karenerriman 25 июн. 2016 г., 2:22:34

Вы можете проверить, если сделка входящие или исходящие, если вы проверить "потрачено" логическое значение:

{"spent":false,"tx_index":64117670,"type":0,"addr":"18TXxNNt5qQWiNsCb6vLhUud8wjqehHWyn","value":496364,"n":29,"script":"76a91451cd88fd726d2f2085e86fd242873c6ab6f5485d88ac"}, 
{"spent":true,"tx_index":64117670,"type":0,"addr":"1FvfNCiqGF9sCFoJqcNCExv34UM1KfpXiu","value":464214,"n":30,"script":"76a914a3b7d538dac93dd995e01069e44be13bdebd7baa88ac"}
+321
Skylounge 14 мар. 2014 г., 18:33:38

Полные узлы должны проверить каждую операцию и блок в блокчейн, и дать ценные ссылки для распределения блоков. А поскольку алгоритм консенсуса очень хорошее, нет недействительных сделок в цепочке блоков.

Но если недействительная сделка была как-то создана на блок, и определил полный узел, как узел отвечает? Бы это показать сообщение об ошибке для локального пользователя? Распространять какое-то предупреждение или уведомление по сети? Просто аварии?

+244
apnorton 28 авг. 2017 г., 2:53:55

Вы отдаете недействительной сделки в gettransaction способ.

+177
ThetaSigmaIV 10 нояб. 2012 г., 20:27:13

Учитывая биткоин адрес или запись о сделке между двумя биткоин-адресов и веб-сайт, как blockr.Ио, чтобы изучить ее, можно определить, что онлайн-кошелек биткоин-адрес принадлежит? Например, можно ли сказать, что сделка была отправить с Blockchain.info биткоин кошелек на blockchain кошелек биткоин кошелек?

+174
user3072406 8 февр. 2012 г., 10:27:18

У меня раздвоенный Litcoin 0,8 в , чтобы сделать мои собственные costomized на монеты(учебные цели), с некоторыми изменениями в параметрах:

1. Общее число монет, которые добываются = 270,000,000. 
2. Время формирования блока = 15сек. 
3. Время для уменьшения вдвое = 2 года. 
4. Продолжительность жизни для горнодобывающей = 20 лет. 
5. Добыча монет награда за блок в течение первых 2 лет = 32.16899445. 
6. Общее число монет, которые добываются в первые 2 года = 135264187.8669276

Каждая вещь работает нормально, но blockgeneration время, кажется, слишком медленно. Хоть раз конформации 15 сек-это просто среднее значение, но в моем случае я получаю конформации в каждые 2-3 мин, который далеко не ожидаются

Редактировать:я поставил мои трудности, чтобы быть как можно более низкой, которая составляет около 0,002 и ретаргетинг время устанавливается до 10 минут, но даже после 3 дней ОС у меня где-то около 3400 блоков,а также сложность ее же в каждом блоке, хотя я делаю несколько операций в узлах.

{
 "версия" : 80705,
 "protocolversion" : 70002,
 "walletversion" : 60000,
 "баланс" : 17474.98800000,
 "блоки" : 3407,
 "timeoffset" : 0,
 "подключений" : 2,
 "прокси" : "",
 "трудность" : 0.00024414,
 "тестовом режиме" : ложные,
 "keypoololdest" : 1516853983,
 "keypoolsize" : 102,
 "paytxfee" : 0.00000000,
 "mininput" : 0.00001000,
 "ошибки" : ""
}
+171
neza 23 авг. 2013 г., 14:55:29

Система в офисе имеет свой узел тестовом режиме, застрял на определенном блоке.

Журналы отчет "с просьбой заблокировать" снова и снова на этом же блоке и после каждого сообщения "ошибка сокета приема" и вызов разъединяется. Затем он соединяет новый узел и происходит то же самое. Нет записи в журнале о поврежденных блоках.

В результате система не было нового блока в два дня, но все исследователи сообщают, что цепь продолжает двигаться вперед.

Текущий блок этот узел на член лучшая сеть сообщили исследователи, но тысяч за.

Этот узел работает на Ubuntu в США. В офисной сети есть приложение SonicWall брандмауэра.

+83
Jordan Trueluck 24 нояб. 2010 г., 6:17:01

Я хотел бы создать Bitcoin и Dogecoin (Qt) для загрузки файла на моей машине с Ubuntu. Есть ли способ сделать это? Я знаю, что это возможно с Windows, но я на Ubuntu. Спасибо.

+17
Dan Breen 21 июл. 2010 г., 1:51:45

Показать вопросы с тегом