Вернуться   Биткоин Форум > Bitcoin - поддержка
31 октября 2017, 7:13:42 PM   # 1
 
 
Сообщения: 3
Цитировать по имени
цитировать ответ
по умолчанию Re: Я нашел лучший способ оценки по цепи объема BTC,

Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome"
Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE
Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e
подробнее...


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Но теперь он берет меня за 1,5 часа, чтобы получить все входы и выходы из каждого блока через bitcoind в JSON-RPC. При нынешних темпах, это займет месяцы, чтобы получить все данные мне нужно. Я отчаянно нуждаюсь в вашей помощи.

Я родом из научных кругов (экономики, в частности), и я часто трудно убедительно описать мои сверстники рост экосистемы Bitcoin в цифрах, которые переводят в экономическую ценность. Если Bitcoin является электронной системой значения равного-равному, нам нужен лучший показатель объема BTC между сетевыми аналогами. На сегодняшний день Blockchain.info является единственной компанией, которая предусматривает, что оценка, но после тестирования нескольких случайных выборок я нашел доказательство того, что, что их методология значительно занижает объем.

За последнюю пару месяцев я работал на лучшую методологию для оценки на цепи объема, но я очень разочарован тем, как долго он принимает, чтобы получить входы и выходы транзакций через интерфейс JSON-RPC bitcoind в.

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

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

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

Код:
от bitcoinrpc.authproxy импорта AuthServiceProxy, JSONRPCException
импорт JSON
импорт запросов
импорт pprint
время импорта
импорт ОС


objectivestart_time = time.time ()
рр = pprint.PrettyPrinter (отступ = 4)



rpc_user = 'п'
rpc_password = 'п'

URL = ("Http: //% s:% s @ 1"% (Rpc_user, rpc_password))


Защиту REQ (полезная нагрузка):
    вернуться requests.post (URL, данные = json.dumps (полезная нагрузка)). JSON ()


Защиту BlockHash_JsonRPCpayload (количество):
    DIC = {

    "jsonrpc":"2,0",
    "метод": "getblockhash",
    "Титулы": [номер] ,
    "Я бы": 1

    }
    Возвращение (DIC)


Защиту Block_JsonRPCpayload (ч):
    DIC = {

    "jsonrpc":"2,0",
    "метод": "getblock",
    "Титулы": [Ул (ч)],
    "Я бы": 1

    }
    Возвращение (DIC)


Защиту rawtx_JsonRPCpayload (ТХ):
    DIC = {

    "jsonrpc":"2,0",
    "метод": "getrawtransaction",
    "Титулы": [ТХ, True],
    "Я бы": 1

    }
    Возвращение (DIC)

Защиту rawvin_JsonRPCpayload (ТХ, Vin):
    block_payload = {

    "jsonrpc":"2,0",
    "метод": "getrawtransaction",
    "Титулы": [TX, 1],
    "Я бы": 1

    }

    Запрос = REQ (block_payload)
    значение = запрос [ 'результат'] [ 'Vout'] [Int (Vin)] [ 'значение']


    Возвращение с плавающей точкой (значение)

BTC_dic = {}


hash_payload = []
start_time = time.time ()

block_start = 481101
block_end = 490000
начать = block_start
конец = block_start

в то время как конец < block_end:
    block_tries = 0
    в то время как True:
        пытаться:    

            конец = начало + 100
            hash_payload = []
            печать ( «Пуск», «конец», начало, конец)
            для я в диапазоне (начало, конец):
                hash_payload.append (BlockHash_JsonRPCpayload (я))


            start_time = time.time ()
            печать ( 'знак 1')
            hash_response = requests.post (URL, данные = json.dumps (hash_payload)). JSON ()
            печать ( «время, чтобы получить хэш партии», старт, "_", Конец, time.time () - start_time)
            печать ( «успех в получении хэшей для диапазонов», старт, "_ ", конец )

            time.sleep (0.4)

            block_payload = []
            для я в hash_response:
                ч = я [ «результат»]
                block_payload.append (Block_JsonRPCpayload (ч))
            start_time = time.time ()
            block_response = requests.post (URL, данные = json.dumps (block_payload)). JSON ()
            печать ( «время, чтобы получить блок партии», старт, "_", Конец, time.time () - start_time)
            печать ( «успех в получении блоков для диапазонов», старт, "_ ", конец )

            time.sleep (0.4)



            для г в диапазоне (LEN (block_response)):


                Блок = block_response [I] [ 'результат']

                высота = блок [ «высота»]
                печать ( 'получение', Len (блок [ 'ТХ']), 'операции для блока', высота)
                BTC_dic [высота] = блок
                tx_payload = []
                для ТХ в блоке [ «ТХ»]:
                    tx_payload.append (rawtx_JsonRPCpayload (TX))

                try_errors = 0
                в то время как True:
                    пытаться:
                        #print (LEN (tx_payload), 'количество сделок в блоке', высота)
                        start_time = time.time ()
                        сделка = requests.post (URL, данные = json.dumps (tx_payload)). () JSON
                        time.sleep (0,5)
                        #print ( 'время, чтобы получить ТЕ', time.time () - start_time)
                        печать ( «успех в получении транзакций для блока», высота)
                    Кроме:
                        try_errors + 1 =
                        печать ( '!! Попробуй ошибка !!)
                        печать (try_errors «транзакция пытается по высоте блока», высота)
                        time.sleep (3)
                        Продолжать

                    ломать


                для г в диапазоне (LEN (транзакции)):


                    tx_result = транзакции [I] [ 'результат']
                    Vin = tx_result [ 'Vin']
                    Vout = tx_result [ 'Vout']



                    пытаться:
                        плата = 0
                        для J в диапазоне (LEN (Vout)):
                            сборы - = tx_result [ 'Vout'] [J] [ 'значение']

                        для J в диапазоне (LEN (Vin)):

                            Vout = Vin [J] [ 'Vout']
                            TXID = Vin [J] [ 'TXID']

                            vin_error = 0
                            в то время как True:
                                пытаться:
                                    значение = rawvin_JsonRPCpayload (TXID, Vout)
                                Кроме:
                                    печать ( '!! ошибка Vin !!)
                                    печать ( 'попытка', vin_error)
                                    vin_error + 1 =

                                    time.sleep (0.4)
                                    Продолжать
                                ломать

                            плата + = значение
                            tx_result [ 'Vin'] [J] [ 'значение'] = значение



                        tx_result [ 'сборы'] = сборы
                    Кроме:
                        tx_result [ 'Vin'] [0] [ 'значение'] = 'Нет входы (вновь сформированные монеты)'
                        tx_result [ 'сборы'] = 0


                    BTC_dic [высота] [ 'ТХ'] [я] = tx_result



                если Len (BTC_dic) >= 100:
                    печать ( 'Len BTC_dic =', длина (BTC_dic))


                    для блока в BTC_dic:
                        block_fee = 0
                        Операции = BTC_dic [блок] [ 'ТХ']


                        # pp.pprint (сделки)
                        для дж сделок:
                            плата = J [ ''] сборы
                            block_fee + = плата
                        BTC_dic [блок] [ 'блок сборов'] = block_fee



                    block_array = []
                    для блока в BTC_dic:
                        block_array.append (блок)


                    имя_файла = 'jcampbell_btc_txdata' ул (мин (block_array)) + '_' + ул (макс (block_array)) + 'JSON'
                    печать ( 'сохранение', имя_файла 'время', time.time () - objectivestart_time)

                    с открытым (file_name, «ж») в выходном файле:
                        json.dump (BTC_dic, выходной_файл)
                    BTC_dic = {}




            начать = конец



        Кроме:
            block_tries + 1 =
            печать (block_tries, «пытается получить данные для диапазона блока», старт,"_",конец)
            time.sleep (5)
            Продолжать
        ломать




для блока в BTC_dic:
    block_fee = 0
    Операции = BTC_dic [блок] [ 'ТХ']


    # pp.pprint (сделки)
    для дж сделок:
        плата = J [ ''] сборы
        block_fee + = плата
    BTC_dic [блок] [ 'блок сборов'] = block_fee





block_array = []
для блока в BTC_dic:
    block_array.append (блок)


имя_файла = 'jcampbell_btc_txdata' ул (мин (block_array)) + '_' + ул (макс (block_array)) + 'JSON'
печать ( 'сохранение', имя_файла 'время', time.time () - objectivestart_time)
с открытым (file_name, «ж») в выходном файле:
    json.dump (BTC_dic, выходной_файл)
jamesmrk3l сейчас офлайн Пожаловаться на jamesmrk3l   Ответить с цитированием Мультицитирование сообщения от jamesmrk3l Быстрый ответ на сообщение jamesmrk3l


Как заработать Биткоины?
Без вложений. Не майнинг.


31 октября 2017, 10:48:40 PM   # 2
 
 
Сообщения: 1246
Цитировать по имени
цитировать ответ
по умолчанию Re: Я нашел лучший способ оценки по цепи объема BTC,

Получил 1806 Биткоинов
Реальная история.





Вместо того запроса каждой транзакции по отдельности, запросить блок с уровнем детальности 2 (только один параметр со значением 2). Это будет также включать в себя данные в формате JSON для каждой транзакции, а не только в txids.
achow101 сейчас офлайн Пожаловаться на achow101   Ответить с цитированием Мультицитирование сообщения от achow101 Быстрый ответ на сообщение achow101

1 ноября 2017, 3:28:58 AM   # 3
 
 
Сообщения: 3
Цитировать по имени
цитировать ответ
по умолчанию Re: Я нашел лучший способ оценки по цепи объема BTC,

Вместо того запроса каждой транзакции по отдельности, запросить блок с уровнем детальности 2 (только один параметр со значением 2). Это будет также включать в себя данные в формате JSON для каждой транзакции, а не только в txids.

Спасибо anchow101 - это запрос ниже представителя о том, что вы говорите?

> Bitcoin-кли getblock "00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09" 2

В любом случае возвращения декодированных транзакций с тем же вызова?

Еще раз спасибо!
jamesmrk3l сейчас офлайн Пожаловаться на jamesmrk3l   Ответить с цитированием Мультицитирование сообщения от jamesmrk3l Быстрый ответ на сообщение jamesmrk3l

1 ноября 2017, 1:42:49 PM   # 4
 
 
Сообщения: 3
Цитировать по имени
цитировать ответ
по умолчанию Re: Я нашел лучший способ оценки по цепи объема BTC,

Вместо того запроса каждой транзакции по отдельности, запросить блок с уровнем детальности 2 (только один параметр со значением 2). Это будет также включать в себя данные в формате JSON для каждой транзакции, а не только в txids.

Спасибо anchow101 - это запрос ниже представителя о том, что вы говорите?

> Bitcoin-кли getblock "00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09" 2

В любом случае возвращения декодированных транзакций с тем же вызова?

Еще раз спасибо!

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

Спасибо!
jamesmrk3l сейчас офлайн Пожаловаться на jamesmrk3l   Ответить с цитированием Мультицитирование сообщения от jamesmrk3l Быстрый ответ на сообщение jamesmrk3l



Как заработать Биткоины?

Bitcoin Wallet * Portefeuille Bitcoin * Monedero Bitcoin * Carteira Bitcoin * Portafoglio Bitcoin * Bitcoin Cüzdan * 比特币钱包

bitcoin-zarabotat.ru
Почта для связи: bitcoin-zarabotat.ru@yandex.ru

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW