569 Commits

Author SHA1 Message Date
Miguel Freitas
e52f2c2527 dhtproxy: tunnel DHT traffic into TCP connections 2014-06-26 16:38:43 -03:00
Miguel Freitas
102d172ca3 highly experimental soft checkpoint based on consensus 2014-01-19 22:25:22 -02:00
Miguel Freitas
6416fa5d58 another try to fix the infinite recursion triggered when the new (longer) chain
contains an invalid transaction (due to older, buggy, twisterd or attacker).
i'm not entirely convinced that original bitcoin couldn't be attacked the same
way (51% is still needed, but crashing the client is pretty bad).
2014-01-19 00:53:15 -02:00
Miguel Freitas
19ff320d24 replace HaveTxIndex for GetTransaction. this is a more secure check since it also
verifies if tx is part of current main chain. old test may cause problems for people
trying to reregister their usernames in case of reversal attack since nodes might incorrectly
refuse to accept/retransmit the new transaction.
2014-01-18 20:36:18 -02:00
Miguel Freitas
4c25acc6af partialy revert changeset 77d1a4fb. fixed one case (that -reindex would fix anyway) but broke another one. 2014-01-13 09:40:18 -02:00
Miguel Freitas
055240b2a9 fix "CreateNewBlock() : ConnectBlock failed" due to "duplicate username".
improve transaction collect in CreateNewBlock
2014-01-13 09:16:04 -02:00
Miguel Freitas
77d1a4fb7b trying to fix infinite recursion in SetBestChain 2014-01-12 23:44:33 -02:00
Miguel Freitas
ba43f10e8f move spamuser key validation from CheckTransation to ConnectBlock.
reason: this is not context-independent validation.
2014-01-12 20:41:58 -02:00
Miguel Freitas
fbc7d9a77a generalize checking if tx is in mainchain for GetTransaction 2014-01-12 19:29:33 -02:00
Miguel Freitas
9d5d203a0c bugfix: weak checking for existing users (the transaction may exist in index only
but the chain it belongs was invalidated) caused fork between users who erased their
block database from yesterday and those who didn't. improve the checking (test
if tx is actually in main chain). add another checkpoint. enforce.
2014-01-10 17:36:23 -02:00
Miguel Freitas
23cb6fbdb6 limit transaction size 2014-01-09 12:21:58 -02:00
Miguel Freitas
339c4a00ea TODO cleanups 2013-12-30 14:15:45 -02:00
Miguel Freitas
fd404d0927 dumppubkey json return value must be hexstr 2013-12-08 18:24:25 -02:00
Miguel Freitas
33a04c7cf0 improve miner response to new blocks received to prevent stale blocks being generated 2013-11-30 18:48:04 -02:00
Miguel Freitas
d2d64bfed2 make sure strSpamUser is valid before using it to sign message 2013-11-30 18:34:34 -02:00
Miguel Freitas
b4d044f843 utf8 character counting to check message size < 140 2013-11-23 13:06:28 -02:00
Miguel Freitas
fb0802449c implement index of partial usernames so search-as-you-type can work as expected with listusernamespartial 2013-11-17 22:56:06 -02:00
Miguel Freitas
3847d74f5d fix GetTransaction old key search. how many more iterations do i need to get this thing right? 2013-11-14 01:22:19 -02:00
Miguel Freitas
30992b87c3 use scrypt hash function like litecoin 2013-11-14 00:57:51 -02:00
Miguel Freitas
2917054c80 change to version 0.9.00. sounds better than 0.8.99 2013-11-08 18:37:24 -02:00
Miguel Freitas
ceddb2781b Check duplicate usernames within the same block 2013-11-06 18:25:24 -02:00
Miguel Freitas
4c99e80449 fix txindex inconsistency if twisterd crashes.
txindex (user,-1) may point to a key in a block not yet linked to the chain.
2013-11-05 14:02:37 -02:00
Miguel Freitas
247ae657ef remove failing assert when db is empty 2013-11-05 00:26:20 -02:00
Miguel Freitas
f81088be70 properly implement verification using keys that have been replaced.
the basic idea is replace txIndex key with a pair (username,height).
height = -1 for the most up-to-date key, otherwise height = last block where previous key was valid.
by checking maxHeight and iterating backwards we can easily find the key to validate data from any given block number.
2013-11-05 00:00:11 -02:00
Miguel Freitas
0678ae169b CreateSpamMsgTx fallback to "nobody" 2013-10-31 14:04:13 -02:00
Miguel Freitas
2c48386b4e Properly implement spam signing and checking to prevent it from been used to impersonate users.
"nobody" is an exception so default client could still send unauthenticated/anonymous spam
messages.
2013-10-31 14:02:29 -02:00
Miguel Freitas
7e57fb2fe4 mempool uses txhash again (instead of userhash). this is needed to fix key replacement.
using userhash in mempool was a bad idea, it creates incompatibilities with merkle tree code etc.
now we are back to standard bitcoin protocol regarding tx and inv commands, possibly filter as well.
2013-10-07 19:33:29 -03:00
Miguel Freitas
b6db2327e4 add support (untested) for key replacement 2013-10-01 19:37:29 -03:00
Miguel Freitas
0df5c54166 promoted posts implemented 2013-10-01 08:57:51 -03:00
Miguel Freitas
a32bfec78f sugestion: add language to the spam message text 2013-09-20 19:56:59 -03:00
miguel
6b9c27048e partial untested torrent chages. will use leveldb for storage, no more multi-files per torrent, number of pieces may increase. 2013-08-17 20:12:44 -03:00
Miguel Freitas
82ea843b46 make block signature compatible with the rest 2013-08-09 10:14:43 -03:00
Miguel Freitas
3a1d772643 improve dht node added from bitcoin network peers 2013-08-07 20:20:03 -03:00
Miguel Freitas
78e97ac9dc use the same message magic everywhere (to hash) 2013-08-04 11:36:44 -03:00
Miguel Freitas
9946d6ed72 mining fixes: add salt to instance and use correct username for signing 2013-07-25 12:06:18 -03:00
Miguel Freitas
ad712d5006 fix wrongly erasing of indextx with checklevel==3 2013-07-25 10:43:06 -03:00
Miguel Freitas
76f8a901a7 removing stuff 2013-07-24 20:28:23 -03:00
Miguel Freitas
26bbd5614f remove GetCoins/SetCoins 2013-07-24 18:23:05 -03:00
Miguel Freitas
fe01fd01cb create CScript overload for << string 2013-07-24 16:22:18 -03:00
Miguel Freitas
4d43b4a6f0 fix CreateSpamMsgTx signing (GetHash on CHashWriter cannot be used twice) 2013-07-24 16:08:25 -03:00
Miguel Freitas
84f796be7f fix EraseTxIndex usage 2013-07-21 18:39:20 -03:00
Miguel Freitas
6e1c42e963 tx accepted! 2013-07-20 23:58:56 -03:00
Miguel Freitas
a6ff5511fa test invalid userhash (might be an invalid tx received from network) 2013-07-20 20:00:30 -03:00
Miguel Freitas
d9fdca340c implement CScript => string extraction, check username constraits, improve username hash 2013-07-20 19:54:48 -03:00
Miguel Freitas
623b80c061 fix missing nHeight field 2013-07-20 16:56:02 -03:00
Miguel Freitas
6ff04a0de2 fix genesis block hash 2013-07-20 15:35:57 -03:00
Miguel Freitas
0b753e0ce2 add nHeight to header for mining (a couple of offsets need +4 to work again) 2013-07-19 20:18:55 -03:00
Miguel Freitas
05c7d3f27d fix/improve printf of created tx 2013-07-19 19:54:37 -03:00
Miguel Freitas
1c4f457312 remove stuff 2013-07-19 16:50:30 -03:00
Miguel Freitas
c13ab7e5d5 comment how/where tx userhashes are checked upon block acceptance 2013-07-19 16:39:12 -03:00