Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
13 августа 2010, 7:28:23 PM   # 1
 
 
Сообщения: 1652
Цитировать по имени
цитировать ответ
по умолчанию Re: предлагаемые изменения sendtoaddress вызова API

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


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Я предлагаю одно небольшое изменение в JSON-RPC API Bitcoin в: возвращает идентификатор транзакции, когда Bitcoins успешно отправлены.

Зачем? Потому что я хочу, чтобы сохранить полный аудиторский след для любых монет или возвращения из бумажника моего приложения; Я хочу, чтобы следить за конкретные операции в сети Bitcoin, соответствующих действия моего приложение принимает. В качестве альтернативы можно назвать sendtoaddress, а затем вызвать listtransactions, но это не будет работать должным образом, если две подобные операции (такое же количество к тому же адресу) происходит примерно в то же самое время.

Поэтому я предлагаю делать простые вещи можно: изменить sendtoaddress вызов JSON-RPC, так она возвращает строку «посланный:» с последующим 256-разрядным шестнадцатеричным операций ид.

Это может нарушить любые приложения, которые ищут именно строку «послал» (что sendtoaddress делает сейчас). Исправление будет модифицировать приложения, чтобы увидеть, если строка начинается с «послал».

Альтернативы я думал, но думаю, что мне не нравится:
 + сделать это новый вызов апи так старые приложения не нарушают (sendtoaddress2? Тьфу)
 + возвращать только идентификатор транзакции на успешной отправке вместо «отправить: ...»
 + возвращает массив с дополнительной информацией (возможно [ "tx_id": "...", "плата" : 0,0])

Комментарии / критика?
Гэвин Андресен сейчас офлайн Пожаловаться на Гэвин Андресен   Ответить с цитированием Мультицитирование сообщения от Gavin Andresen Быстрый ответ на сообщение Гэвин Андресен


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


13 августа 2010, 7:40:20 PM   # 2
 
 
Сообщения: 1484
Цитировать по имени
цитировать ответ
по умолчанию Re: предлагаемые изменения sendtoaddress вызова API

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






100% согласились с предложением, о необходимости txn_id ассоциации.

Тем не менее, кажется, лучше, чтобы избежать поломки API, поскольку этот API так сильно используется. Это почти гарантировано, что любой автоматизации Bitcoins использует sendtoaddress.

Либо создать "Send2" RPC вызов, или добавьте "[Расширенный JSON = 0]" параметр к существующему sendtoaddress RPC вызов, или нечто подобное, сохраняющий существующие потоки данных приложений.


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

13 августа 2010, 7:41:14 PM   # 3
 
 
Сообщения: 322
Цитировать по имени
цитировать ответ
по умолчанию Re: предлагаемые изменения sendtoaddress вызова API

Просто добавьте флаг (как истина / ложь) к функции с по умолчанию "ложный" поэтому он работает с более старым использованием вызова функции.

подобно

sendtoaddress <количество> [Комментарий] [комментарии к] [возврат идентификатор транзакции, по умолчанию ложным]

Так
sendtoaddress 1FtDzyajiHKa9QbXiNxqztB 1,00 "Бла Комментарий" "Бла От" правда
возвращается
послал XYZ ....

Но
sendtoaddress 1FtDzyajiHKa9QbXiNxqztB 1,00 "Бла Комментарий" "Бла От"
возвращается
послал
Кроме того, не нарушить совместимость.

Я думаю, что это будет удобное дополнение.
knightmb сейчас офлайн Пожаловаться на knightmb   Ответить с цитированием Мультицитирование сообщения от knightmb Быстрый ответ на сообщение knightmb

13 августа 2010, 8:01:17 PM   # 4
 
 
Сообщения: 1652
Цитировать по имени
цитировать ответ
по умолчанию Re: предлагаемые изменения sendtoaddress вызова API

RE: добавление флага: отличная идея!

Если установить флаг, я не вижу никаких причин, чтобы PREPEND «послал» ИД транзакции; лучше просто вернуть идентификатор транзакции на успешной отправке.

Патчи:
Код:
дифференциал --git а / rpc.cpp б / rpc.cpp
Индекс 920fe90..8714b7e 100644
--- а / rpc.cpp
+++ б / rpc.cpp
@@ -342,10 +342,11 @@ Value getaddressesbylabel (Const массива& PARAMS, BOOL fHelp)
 
 Value sendtoaddress (сопз массив& PARAMS, BOOL fHelp)
 
 
@@ -1103,6 +1110,7 @@ ИНТ CommandLineRPC (интермедиат ARGC, символ * ARGV [])
         если (strMethod == "setgenerate"            && N > 0) ConvertTo(PARAMS [0]);
         если (strMethod == "setgenerate"            && N > 1) ConvertTo<повышение :: int64_t>(PARAMS [1]);
         если (strMethod == "sendtoaddress"          && N > 1) ConvertTo<двойной>(PARAMS [1]);
+        если (strMethod == "sendtoaddress"          && N > 4) ConvertTo(PARAMS [4]);
         если (strMethod == "listtransactions"       && N > 0) ConvertTo<повышение :: int64_t>(PARAMS [0]);
         если (strMethod == "listtransactions"       && N > 1) ConvertTo(PARAMS [1]);
         если (strMethod == "getamountreceived"      && N > 1) ConvertTo<повышение :: int64_t>(PARAMS [1]); // осуждается
Гэвин Андресен сейчас офлайн Пожаловаться на Гэвин Андресен   Ответить с цитированием Мультицитирование сообщения от Gavin Andresen Быстрый ответ на сообщение Гэвин Андресен

13 августа 2010, 8:13:30 PM   # 5
 
 
Сообщения: 1484
Цитировать по имени
цитировать ответ
по умолчанию Re: предлагаемые изменения sendtoaddress вызова API


Что происходит, когда мы хотим, чтобы вернуть дополнительную информацию, за ТМ-ид?

Ради будущей совместимости, похоже, флаг должен представить выбор между возвращением (а) только текущий «Отправленные», или (б) карту в формате JSON, содержащий TX-идентификатор, и, возможно, другие вещи.

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

13 августа 2010, 8:26:06 PM   # 6
 
 
Сообщения: 1652
Цитировать по имени
цитировать ответ
по умолчанию Re: предлагаемые изменения sendtoaddress вызова API

Что происходит, когда мы хотим, чтобы вернуть дополнительную информацию, за ТМ-ид?

Ради будущей совместимости, похоже, флаг должен представить выбор между возвращением (а) только текущий «Отправленные», или (б) карту в формате JSON, содержащий TX-идентификатор, и, возможно, другие вещи.
A «gettransaction tx_id» API вызова на мой короткий список.

Что другие люди думают; должны sendtoaddress .... правда возвратного только tx_id, и вы должны сделать еще один вызов API, чтобы получить подробную информацию, если вы нуждаетесь в них?
Или она должна возвращать массив?
Гэвин Андресен сейчас офлайн Пожаловаться на Гэвин Андресен   Ответить с цитированием Мультицитирование сообщения от Gavin Andresen Быстрый ответ на сообщение Гэвин Андресен

13 августа 2010, 11:01:14 PM   # 7
 
 
Сообщения: 1484
Цитировать по имени
цитировать ответ
по умолчанию Re: предлагаемые изменения sendtoaddress вызова API


вам нужно «gettransaction», учитывая существование «getblock» Do?

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

13 августа 2010, 11:39:14 PM   # 8
 
 
Сообщения: 364
Цитировать по имени
цитировать ответ
по умолчанию Re: предлагаемые изменения sendtoaddress вызова API

Это слишком рано, чтобы начать junking вверх API для обратной совместимости любой ценой.

Только возвращение "",
Satoshi сейчас офлайн Пожаловаться на Satoshi   Ответить с цитированием Мультицитирование сообщения от Satoshi Быстрый ответ на сообщение Satoshi

13 августа 2010, 11:40:37 PM   # 9
 
 
Сообщения: 322
Цитировать по имени
цитировать ответ
по умолчанию Re: предлагаемые изменения sendtoaddress вызова API

Что происходит, когда мы хотим, чтобы вернуть дополнительную информацию, за ТМ-ид?

Ради будущей совместимости, похоже, флаг должен представить выбор между возвращением (а) только текущий «Отправленные», или (б) карту в формате JSON, содержащий TX-идентификатор, и, возможно, другие вещи.
A «gettransaction tx_id» API вызова на мой короткий список.

Что другие люди думают; должны sendtoaddress .... правда возвратного только tx_id, и вы должны сделать еще один вызов API, чтобы получить подробную информацию, если вы нуждаетесь в них?
Или она должна возвращать массив?

В зависимости от того, как фантазии вы хотите быть.

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

sendtoaddress <количество> [Комментарий] [комментарии к]
-tx_id: возвращает TX идентификатор принимающего Bitcoin адрес
-танец: танец возвращается высокие баллы
-Луна: возвращение текущей фазы Луны

Так можно было бы просто положить в
sendtoaddress -TX-_id <количество> [Комментарий] [комментарии к]
вместо
sendtoaddress <количество> [Комментарий] [комментарии к] верно неверно верно верно неверно
если много функций были добавлены к нему позже.
knightmb сейчас офлайн Пожаловаться на knightmb   Ответить с цитированием Мультицитирование сообщения от knightmb Быстрый ответ на сообщение knightmb

14 августа 2010, 1:46:17 PM   # 10
 
 
Сообщения: 1652
Цитировать по имени
цитировать ответ
по умолчанию Re: предлагаемые изменения sendtoaddress вызова API

Это слишком рано, чтобы начать junking вверх API для обратной совместимости любой ценой.
Только возвращение "",
Вы никогда не будете слышать меня спорить с "будь проще." 

Патч для этого тривиальна:
Код:
дифференциал --git а / rpc.cpp б / rpc.cpp
Индекс 920fe90..35a336f 100644
--- а / rpc.cpp
+++ б / rpc.cpp
@@ -364,7 +364,7 @@ Value sendtoaddress (сопз массив& PARAMS, BOOL fHelp)
     Строка strError = SendMoneyToBitcoinAddress (strAddress, nAmount, WTX);
     если (strError! = "")
         бросить runtime_error (strError);
-    вернуть "послал";
+    вернуться wtx.GetHash () ToString ().
 }
Гэвин Андресен сейчас офлайн Пожаловаться на Гэвин Андресен   Ответить с цитированием Мультицитирование сообщения от Gavin Andresen Быстрый ответ на сообщение Гэвин Андресен

14 августа 2010, 6:11:20 PM   # 11
 
 
Сообщения: 1484
Цитировать по имени
цитировать ответ
по умолчанию Re: предлагаемые изменения sendtoaddress вызова API


Я думаю, что это подразумевалось быть

     вернуть "<" + Wtx.GetHash (). ToString () + ">";

?

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

14 августа 2010, 11:57:01 PM   # 12
 
 
Сообщения: 1652
Цитировать по имени
цитировать ответ
по умолчанию Re: предлагаемые изменения sendtoaddress вызова API

Нет, Satoshi использует значить "заменить этот заполнитель с фактической штуковиной."

Было бы досадно постоянно обирать < а также > от TXID.
Гэвин Андресен сейчас офлайн Пожаловаться на Гэвин Андресен   Ответить с цитированием Мультицитирование сообщения от Gavin Andresen Быстрый ответ на сообщение Гэвин Андресен

15 июля 2011, 4:55:42 PM   # 13
 
 
Сообщений: 51
Цитировать по имени
цитировать ответ
по умолчанию Re: предлагаемые изменения sendtoaddress вызова API

Было ли это когда-либо делал? Было бы чрезвычайно полезно для моего приложения, а также ...
xane сейчас офлайн Пожаловаться на xane   Ответить с цитированием Мультицитирование сообщения от xane Быстрый ответ на сообщение xane

15 июля 2011, 11:51:15 PM   # 14
 
 
Сообщения: 1652
Цитировать по имени
цитировать ответ
по умолчанию Re: предлагаемые изменения sendtoaddress вызова API

Да, все методы отправки * возвращает идентификатор транзакции на успешной отправке.
Гэвин Андресен сейчас офлайн Пожаловаться на Гэвин Андресен   Ответить с цитированием Мультицитирование сообщения от Gavin Andresen Быстрый ответ на сообщение Гэвин Андресен



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW