amaclin1
|
|
July 02, 2019, 06:01:52 AM |
|
No information available about transaction (code -5)
Попробовать не getrawtransaction, а gettransactionПервая команда берет из блокчейна+мемпула, вторая - из кошелька Если транзакция невалидная для блокчейна - она в кошельке может остаться мусором, а в блокчейне+мемпуле, разумеется, её не будет. Естественно, если ваш клиент такое позволяет.
|
|
|
|
|
amaclin1
|
|
July 02, 2019, 06:44:30 AM |
|
И то и то работает. Индексация всех транзакций сделана по умолчанию Без этого полноценная работа клиента невозможна. Да при чем тут индексация транзакций, если транзакции нет в блокчейне?
|
|
|
|
neiros (OP)
Legendary
Offline
Activity: 3556
Merit: 1100
|
|
July 02, 2019, 06:57:38 AM |
|
И то и то работает. Индексация всех транзакций сделана по умолчанию Без этого полноценная работа клиента невозможна. Да при чем тут индексация транзакций, если транзакции нет в блокчейне? В данном случае не при чём. Информация gettransaction бесполезна. getrawtransaction показывает входы и выходы транзакции. Вот эти inы и outы проблемной транзакции и нужно узнать.
|
|
|
|
amaclin1
|
|
July 02, 2019, 07:39:56 AM |
|
Информация gettransaction бесполезна. getrawtransaction показывает входы и выходы транзакции. Вот эти inы и outы проблемной транзакции и нужно узнать.
Ну блин. То что выдает gettransaction надо скормить в decoderawtransactionБудут вам и входы и выходы.
|
|
|
|
neiros (OP)
Legendary
Offline
Activity: 3556
Merit: 1100
|
|
July 02, 2019, 11:53:29 AM |
|
Сами-то поняли, что написали и где ошиблись? Информация gettransaction бесполезна. getrawtransaction показывает входы и выходы транзакции. Вот эти inы и outы проблемной транзакции и нужно узнать.
Ну блин. То что выдает getrawtransaction надо скормить в decoderawtransactionБудут вам и входы и выходы. для примера: getrawtransaction c0af3d495038affbad2f8ea10b0e51f272056c011f5921f04ceb428107adbdbc 1
Вот эта строчка делает тоже самое. Ничего дополнительно декодировать ненужно.
|
|
|
|
amaclin1
|
|
July 02, 2019, 04:55:10 PM |
|
Вот эта строчка делает тоже самое. Ничего дополнительно декодировать ненужно. Бля, ну ты долбоёб. Эта строчка сделает то же самое если найдет транзакцию в блокчейне или в мемпуле. А если, блядь, транзакция существует только в валлет.дат - то нихуя не то же самое! Человек как раз и спрашивает про эту ситуацию
|
|
|
|
neiros (OP)
Legendary
Offline
Activity: 3556
Merit: 1100
|
|
July 03, 2019, 03:26:09 AM |
|
Вот эта строчка делает тоже самое. Ничего дополнительно декодировать ненужно. Бля, ну ты долбоёб. Эта строчка сделает то же самое если найдет транзакцию в блокчейне или в мемпуле. А если, блядь, транзакция существует только в валлет.дат - то нихуя не то же самое! Человек как раз и спрашивает про эту ситуацию Транзакция в кошельке? В кошельке. В wallet.dat`е? В wallet.dat`е. В мемпуле этого кошелька, на обратной стороне Луны или в ваших фантазиях? Я практически уверен что в мемпуле этого кошелька. Поэтому я и попросил wallet.dat чтобы самому разобраться где она действительно находится. Если getrawtransaction показывает параметры неподтверждённых транзакций (добавлю, и никому более не известных транзакций изолированного от сети клиента), то он должен показать параметры проблемной. Либо же это был банальных орфан блок и он, при перезагрузке кошелька, уже сам давно испарился. Без wallet.dat я могу пока только предполагать.
|
|
|
|
amaclin1
|
|
July 03, 2019, 04:19:43 AM |
|
Транзакция в кошельке? В кошельке. В wallet.dat`е? В wallet.dat`е. В мемпуле этого кошелька, на обратной стороне Луны или в ваших фантазиях? Я практически уверен что в мемпуле этого кошелька. Нет такого понятия "мемпул кошелька". Мемпул - это транзакции, которые могут быть включены в блок, но пока еще не включены. К кошельку это никакого отношения не имеет. Но Bitcoin Core устроен так, что в файле wallet.dat хранятся копии транзакций, которые имеют отношение к приватным ключам юзера. В некоторых случаях получается так, что копия есть в файле wallet.dat а в мемпуле и блокчейне транзакции нет. Это можно получить несколькими способами - например, если отправить свою транзакцию из несинхронизированного клиента при том условии, что средства уже были потрачены - в wallet.dat такая транзакция попадет, а после синхронизации этой транзакции нигде больше не будет. Поэтому я и попросил wallet.dat чтобы самому разобраться где она действительно находится. Если getrawtransaction показывает параметры неподтверждённых транзакций (добавлю, и никому более не известных транзакций изолированного от сети клиента), то он должен показать параметры проблемной. От того, что wallet.dat будет лежать на вашем компьютере команда getrawtransaction не заработает Потому что в wallet.dat за транзакциями она не лезет. Впрочем, проверяйте сами. Может в каких-то версиях и лезет. Либо же это был банальных орфан блок и он, при перезагрузке кошелька, уже сам давно испарился. Без wallet.dat я могу пока только предполагать. Не, ну если владелец wallet.dat согласен его пересылать кому-то - да пожалуйста! Ебитесь на здоровье. Я лишь предложил способ разобраться с проблемой без передачи wallet.dat который может быть и незапаролен.
|
|
|
|
neiros (OP)
Legendary
Offline
Activity: 3556
Merit: 1100
|
|
July 03, 2019, 07:25:20 AM Last edit: July 03, 2019, 07:35:33 AM by neiros |
|
Транзакция в кошельке? В кошельке. В wallet.dat`е? В wallet.dat`е. В мемпуле этого кошелька, на обратной стороне Луны или в ваших фантазиях? Я практически уверен что в мемпуле этого кошелька. Нет такого понятия "мемпул кошелька". Есть. Не вводите в заблуждение. И в Bitcoin раньше был и сейчас есть и должен быть. Где же ему быть-то, как не в кошельке(клиенте). Мемпул - это транзакции, которые могут быть включены в блок, но пока еще не включены. К кошельку это никакого отношения не имеет. К кошельку Bitcoin Core для обычных пользователей уже, можно сказать, не имеет, а к кошельку TDC это имеет самое прямое и непосредственное отношение. Поэтому не стоит мешать одно с другим. TDC это не нынешняя фигня ввиде Bitcoin Core и его однообразных форков. Но Bitcoin Core устроен так, что в файле wallet.dat хранятся копии транзакций, которые имеют отношение к приватным ключам юзера. В некоторых случаях получается так, что копия есть в файле wallet.dat а в мемпуле и блокчейне транзакции нет. Это можно получить несколькими способами - например, если отправить свою транзакцию из несинхронизированного клиента при том условии, что средства уже были потрачены - в wallet.dat такая транзакция попадет, а после синхронизации этой транзакции нигде больше не будет. Поэтому я и попросил wallet.dat чтобы самому разобраться где она действительно находится. Если getrawtransaction показывает параметры неподтверждённых транзакций (добавлю, и никому более не известных транзакций изолированного от сети клиента), то он должен показать параметры проблемной. От того, что wallet.dat будет лежать на вашем компьютере команда getrawtransaction не заработает Потому что в wallet.dat за транзакциями она не лезет. Впрочем, проверяйте сами. Может в каких-то версиях и лезет. Для меня же Bitcoin не чёрная коробка. Я же его изъездил и изучил на уровне кода вдоль и поперёк(старую версию конечно, а не ту хрень, что уже расплодилась). Неужели вы думаете, что я не смогу, при желании, из клиента, который сам сделал, достать из wallet.dat транзакцию, если она там действительно есть? Либо же это был банальных орфан блок и он, при перезагрузке кошелька, уже сам давно испарился. Без wallet.dat я могу пока только предполагать. Не, ну если владелец wallet.dat согласен его пересылать кому-то - да пожалуйста! Ебитесь на здоровье. Я лишь предложил способ разобраться с проблемой без передачи wallet.dat который может быть и незапаролен. Спасибо конечно, но по-моему с каждой новой версией Bitcoin Core вы, да наверное и не только вы, становитесь всё большим дилетантом в ключевых вопросах. На мой взгляд, конечно.
|
|
|
|
amaclin1
|
|
July 03, 2019, 07:59:02 AM |
|
Спасибо конечно, но по-моему с каждой новой версией Bitcoin Core вы, да наверное и не только вы, становитесь всё большим дилетантом в ключевых вопросах. На мой взгляд, конечно. Ну, короче, сами справитесь без моей помощи. Я, действительно, не особо этим вопросом озабочен. Что там вы наваяли в клиенте. Да и не назвал бы это "ключевым вопросом". Это вообще ниачом вопрос. Дело началось с того, что у чела не работала getrawtransaction, я предложил попробовать другую команду. Чего это вы так возбудились - мне непонятно.
|
|
|
|
neiros (OP)
Legendary
Offline
Activity: 3556
Merit: 1100
|
|
July 03, 2019, 08:20:03 AM |
|
|
|
|
|
Yodo
Jr. Member
Offline
Activity: 45
Merit: 1
|
|
July 31, 2019, 09:54:37 AM |
|
a total coin supply постоянно растет- получается эмиссия ничем неограничена? просто с ростом сложности и уполовиниванием награды будет поступать все меньше монет? Если сумма комиссий транзакций в блоках становится больше заданной алгоритмом величины, эмиссия прекращается. -это произойдет совсем нескоро и только если монетой вовсю начнут пользоваться? а до этого coin supply может раздуться и до 100млн?
|
|
|
|
|
neiros (OP)
Legendary
Offline
Activity: 3556
Merit: 1100
|
|
August 01, 2019, 06:44:07 AM |
|
a total coin supply постоянно растет- получается эмиссия ничем неограничена? Количество монет пока растёт согласно алгоритму эмиссии. Эмиссия ограниченна. Но жесткого ограничения нет. просто с ростом сложности и уполовиниванием награды будет поступать все меньше монет?
Да. Если сумма комиссий транзакций в блоках становится больше заданной алгоритмом величины, эмиссия прекращается. -это произойдет совсем нескоро и только если монетой вовсю начнут пользоваться? а до этого coin supply может раздуться и до 100млн?
До 100млн вряд ли. Примерно +/- на это количество 128 * 210000 * 2 = 53760000 можно ориентироваться. Да. nukis, похоже, умеет мыслить самостоятельно.
|
|
|
|
neiros (OP)
Legendary
Offline
Activity: 3556
Merit: 1100
|
|
October 16, 2019, 01:05:44 PM Last edit: January 14, 2021, 12:29:14 PM by neiros |
|
_оффтопик_
| Чем в последнее время я занимался.
Сделал геотермальный контур: 8 скважин (2*4), 285 метров пнд труб 25-ого диаметра. Кому надо пробурить дырку в земле, обращайтесь. Пол дня делов, без учета подготовительных работ. Тепловой насос - кондиционер MSS-12R08 с минимальными "косметическими" переделками наружного блока. Установил один ветрогенератор. Плюс к этому ещё один, нежданчик, бонусный, почти бесплатный(спасибо китайцам) установил на мачту которую пришлось сварить из металлолома, что под рукой был. А также заборы, ворота, калитки и т.п. мелочи. Всё вполне нормально и выглядит и работает.
Так что переход на использование только энергии солнца и ветра для отопления(?) и электроснабжения в сибирских условиях вполне реален и даже относительно мало затратен как по материалам, так и по времени. Конечно для тех у кого руки из нужного места растут. Как-нибудь про это дело отдельную статью надо будет написать.
Ведь налоги за солнечный свет, за ветер, за воздух и т.п. пока ещё ни одно централизованное хуйло в законе не догадалось ввести.
|
Всё-таки обрабатывать какую-нибудь деревяшку, железку или чинить/латать какую-угодно фиговину мне больше нравиться, чем пилить какой-нибудь программный код. Но сейчас уже руки дошли до возможного решения этой проблемы - https://bitcointalk.org/index.php?topic=2254304.msg51666221#msg51666221Самый простой вариант примерно такой: 1. Не создавать, а соответственно и не отправлять, транзакцию если нет соединения хотя бы с одной нодой. 2. Если есть соединение, узнаём текущую высоту блокчейна. 3. Создаём и отправляем транзакцию только из тех выходов, глубина которых не ниже рабочей длины блокчейна минус некоторая константа по времени, определяемая через количество блоков для относительно гарантированного попадания транзакции в блокчейн из расчета одни сутки это ~ 24 * 12 блоков в час. Думаю круглой цифры в 1000 блоков будет достаточно. Это почти 3 с половиной дня. Так как при создании транзакции наибольший приоритет у самых древних непотраченных выходов - https://github.com/neiros/TDC/blob/TDC/src/wallet.cpp#L1038 , то если глубина таких выходов будет больше 105000, то не имеет смысла включать эти выходы в транзакцию, так как они уже будут пустыми, т.е. потраченными коинтрансфер транзакцией. По-моему этого пока будет вполне достаточно. Осталось собраться, освежить подзабытые навыки и знания, и сделать и добавить что-то примерно подобное, а может и более навороченное. Тут уж как получится.
|
|
|
|
Deff
Sr. Member
Offline
Activity: 939
Merit: 261
Data HDD Repair - Recovery of lost information
|
|
October 17, 2019, 11:35:27 AM |
|
У тебя вот это срабатывает // Broadcast (передача) if (!wtx.AcceptToMemoryPool(false)) { // This must not fail. The transaction has already been signed and recorded. Это не должны подвести. Транзакция уже подписана и зарегистрированна. printf("CommitTransaction() : Error: Transaction not valid"); return false; } Нужна проверка до записи в Wallet.dat. У тебя в Wallet.dat транзакция записывается а дальнейшую проверку она пройти не может.
|
|
|
|
neiros (OP)
Legendary
Offline
Activity: 3556
Merit: 1100
|
|
October 17, 2019, 01:31:43 PM Last edit: January 14, 2021, 12:29:55 PM by neiros |
|
У тебя вот это срабатывает // Broadcast (передача) if (!wtx.AcceptToMemoryPool(false)) { // This must not fail. The transaction has already been signed and recorded. Это не должны подвести. Транзакция уже подписана и зарегистрированна. printf("CommitTransaction() : Error: Transaction not valid"); return false; } Нужна проверка до записи в Wallet.dat. У тебя в Wallet.dat транзакция записывается а дальнейшую проверку она пройти не может. Это дело AcceptToMemoryPool(false) ведёт нас сюда - https://github.com/neiros/TDC/blob/TDC/src/main.cpp#L1078А это accept(state, *this, fLimitFree, NULL) сюда - https://github.com/neiros/TDC/blob/TDC/src/main.cpp#L803где находится ещё довольно много стандартных проверок, которые и не пускают даблспенд транзакции. В общем то это правильно. Как я и предполагал. Какие-либо проверки до записи в wallet.dat при отсутствии коннекта с сетью или при не синхронизированном блокчейне, как вероятно получилось в недавнем случае, бесполезны. Разве что можно ещё учитывать текущее время компа, но это так себе проверка - одно название по сути. Больше потенциального вреда от неё скорее всего можно ожидать, чем пользы. Самое простое и быстрое, как мне кажется, возможное решение такой проблемы я предложил постом выше. Это не совсем стопроцентное решение, но чтобы с эмулировать возникновение подобного случая нужно быть ещё тем извращенцем или уж очень "везучим" на такое пользователем.
|
|
|
|
Deff
Sr. Member
Offline
Activity: 939
Merit: 261
Data HDD Repair - Recovery of lost information
|
|
October 17, 2019, 01:48:14 PM |
|
У тебя вот это срабатывает // Broadcast (передача) if (!wtx.AcceptToMemoryPool(false)) { // This must not fail. The transaction has already been signed and recorded. Это не должны подвести. Транзакция уже подписана и зарегистрированна. printf("CommitTransaction() : Error: Transaction not valid"); return false; } Нужна проверка до записи в Wallet.dat. У тебя в Wallet.dat транзакция записывается а дальнейшую проверку она пройти не может. Это дело AcceptToMemoryPool(false) ведёт нас сюда - https://github.com/neiros/---TTC--TDC---/blob/TDC/src/main.cpp#L1078А это accept(state, *this, fLimitFree, NULL) сюда - https://github.com/neiros/---TTC--TDC---/blob/TDC/src/main.cpp#L803где находится ещё довольно много стандартных проверок, которые и не пускают даблспенд транзакции. В общем то это правильно. Как я и предполагал. Какие-либо проверки до записи в wallet.dat при отсутствии коннекта с сетью или при не синхронизированном блокчейне, как вероятно получилось в недавнем случае, бесполезны. Разве что можно ещё учитывать текущее время компа, но это так себе проверка - одно название по сути. Больше потенциального вреда от неё скорее всего можно ожидать, чем пользы. Самое простое и быстрое, как мне кажется, возможное решение такой проблемы я предложил постом выше. Это не совсем стопроцентное решение, но чтобы с эмулировать возникновение подобного случая нужно быть ещё тем извращенцем или уж очень "везучим" на такое пользователем. Причину этой ошибки думается ты лучше знаешь, разговор о другом. В любом случае в Wallet.dat не должна попадать транзакция с ошибками при проверке ее валидности. Или добавь новую проверку - до включения транзакции в Wallet.dat или измени очередность имеющихся.
|
|
|
|
neiros (OP)
Legendary
Offline
Activity: 3556
Merit: 1100
|
|
October 17, 2019, 02:37:48 PM |
|
Причину этой ошибки думается ты лучше знаешь, разговор о другом. В любом случае в Wallet.dat не должна попадать транзакция с ошибками при проверке ее валидности. Вне всяких сомнений. Или добавь новую проверку - до включения транзакции в Wallet.dat или измени очередность имеющихся.
Так точно, сэр! Есть, сэр! Слушаюсь, сэр! Разрешите исполнять, сэр?! Есть только один небольшой момент консенсуса данного коина: транзакция может быть абсолютно валидной в некий конкретный момент времени, но уже через секунду сталь совершенно невалидной. Я вместо 1 секунды сделаю временной лаг в 3 с половиной дня и если после этого никаких подобных проблем не всплывёт, значит проблема, можно сказать, будет решённой. Хотя по хорошему здесь нужен гораздо более основательный подход, с учётом всех возможных и не возможных вариантов. Но на данное время этот коин не настолько популярен, чтобы уделять такой незначительной мелочи уж очень пристальное внимание.
|
|
|
|
|