Author

Topic: Об одной неотосланной транзации (Read 3219 times)

legendary
Activity: 1386
Merit: 1000
если у кого есть винда затестируйте плз

Windows 7 x64, cygwin

работает отлично!
Lis
sr. member
Activity: 293
Merit: 251
Spice must flow!
В том то и дело что она еще дальше моего компьютера не ушла, вроде  Smiley Я не включал приложение и у транзакции до сих пор 0 подтверждений  Undecided
если этой транзакции до сих пор нет в BBE можешь смело удалять.
newbie
Activity: 79
Merit: 0
Нет, она уже расползлась по сети.
можно отправить ещё раз, с бОльшей комиссией
хотя, это, наверно, всё же не тот случай
newbie
Activity: 2
Merit: 0
Нет, она уже расползлась по сети.

В том то и дело что она еще дальше моего компьютера не ушла, вроде  Smiley Я не включал приложение и у транзакции до сих пор 0 подтверждений  Undecided
legendary
Activity: 1120
Merit: 1069
А можно отменить отосланную, но еще не подтвержденную транзакцию и вернуть деньги?
Кажется невозможно, но обладая мощностями, сравнимыми с больше чем половина мощности всей сети продолжительное время, можно сначала сказать что ваша транзакция (изначально ошибочная) валидная - тем самым у клиентов будет расти количество у этой транзакции как у обычной..
member
Activity: 84
Merit: 10
Supreme Commander of the Asgard Fleet
Нет, она уже расползлась по сети.
newbie
Activity: 2
Merit: 0
А можно отменить отосланную, но еще не подтвержденную транзакцию и вернуть деньги?
legendary
Activity: 3122
Merit: 1032
#1 VIP Crypto Casino
Спасибо, получилось удалить одну левую транзакцию.
Lis
sr. member
Activity: 293
Merit: 251
Spice must flow!
Code:
#!/usr/bin/env python

#Python 2.6.6
#[GCC 4.4.5] on linux2


from optparse import OptionParser
import bsddb.db

parser = OptionParser(version='Lis@20110605')
parser.add_option('-t', '--tx',    dest='tx',                                       help='remove tx')
parser.add_option('-s', '--show',  dest='show', default=False, action='store_true', help='print all tx')
parser.add_option('-d', '--dir',   dest='dir',   default='.bitcoin',                help='dir of wallet')
parser.add_option('-f', '--file',  dest='file',  default='wallet.dat',              help='name file wallet')
(options, args) = parser.parse_args()

_DIR_ = options.dir
_FILE_ = options.file
_SHOW_ = options.show
_TX_ = options.tx

if _TX_ and len(_TX_) != 64:
  exit('error: wrong tx flag')
 
if not _TX_:
  _SHOW_ = True

if _TX_:
  writable=True
else:
  writable=False

def revers(data):
  date_revers = ''
  for i in range(-1, -len(data), -2):
    date_revers += data[i-1] + data[i]
  return date_revers

try:
  db_env = bsddb.db.DBEnv(0)
  db_dir = _DIR_
  r = db_env.open(db_dir, (bsddb.db.DB_CREATE|bsddb.db.DB_INIT_LOCK|bsddb.db.DB_INIT_LOG|bsddb.db.DB_INIT_MPOOL|bsddb.db.DB_INIT_TXN|bsddb.db.DB_THREAD|bsddb.db.DB_RECOVER))
  db = bsddb.db.DB(db_env)
  flags = bsddb.db.DB_THREAD | (bsddb.db.DB_CREATE if writable else bsddb.db.DB_RDONLY)
  r = db.open(_FILE_, "main", bsddb.db.DB_BTREE, flags)
except:
  exit ('error: can not find file')

try:
  if _TX_:
    del_key = '027478' + revers(_TX_)
    db.delete(del_key.decode('hex'))
    db.sync()
except:
  exit ('error: can not find tx')

if _SHOW_:
  data = db.items()
  for i in range(len(data)):
    if ord(data[i][0][0]) == 2 and data[i][0][1:ord(data[i][0][0])+1] == 'tx':
      print i, 'http://blockexplorer.com/tx/' + revers(data[i][0][3:].encode('hex'))
     
db.close()

example:
# показать
./rm_tx.py -d /home/lis/.bitcoin -f wallet.dat -s
# удалить
./rm_tx.py -d /home/lis/.bitcoin -f wallet.dat -t abe3c7b00dc0101d004502b080007d5e9a009b390a00b76e000420fd272a23f9

если у кого есть винда затестируйте плз.

ВНИМАНИЕ!!!
ВЫ ИСПОЛЬЗУЕТЕ ПЛАГИН НА СВОЙ СТРАХ И РИСК, ДЕЛАЙТЕ РЕЗЕРВНУЮ КОПИЮ КОШЕЛЬКА ПЕРЕД ПРОВЕДЕНИЕМ ЭКСПЕРИМЕНТОВ НАД НИМ!!!

Код общественное достояние.
LZ
legendary
Activity: 1722
Merit: 1072
P2P Cryptocurrency
если еще актуально, в понедельник могу выложить исходник на python удаляющий не нужные транзакции
Было бы здорово. Cheesy

А как же  флаг  -rescan, не поможет разве ?
Так как -purgetx m0Ray'я, на сколько знаю, не включен в основную ветку и не вызывается при опции -rescan,
то биткоин пересканирует блоки и отправит перевод, что в данном случае нужно наоборот предотвратить. Undecided
Lis
sr. member
Activity: 293
Merit: 251
Spice must flow!
Клиент bitcoin запускался, но еще не докачал блоки или соединения не установил с пирами.
В это время была создана транзакция.

Потом биткоин-клиент был остановлен, транзакция не попала в сеть (что видно путем поиска хеша транзакции в blockexplorer.com и в списке неподтвержденных транзакций)

Как эту транзакцию убить, чтобы она не попала в сеть?

если еще актуально, в понедельник могу выложить исходник на python удаляющий не нужные транзакции из wallet.dat
sr. member
Activity: 350
Merit: 250
А как же  флаг  -rescan, не поможет разве ?
LZ
legendary
Activity: 1722
Merit: 1072
P2P Cryptocurrency
Если действительно нужно предотвратить отправку перевода - обратитесь к m0Ray.
member
Activity: 61
Merit: 10
Клиент bitcoin запускался, но еще не докачал блоки или соединения не установил с пирами.
В это время была создана транзакция.

Потом биткоин-клиент был остановлен, транзакция не попала в сеть (что видно путем поиска хеша транзакции в blockexplorer.com и в списке неподтвержденных транзакций)

Как эту транзакцию убить, чтобы она не попала в сеть?
Jump to: