Pages:
Author

Topic: [ANN][COMB] Haircomb - Quantum proof, anonymity and more - page 13. (Read 6890 times)

newbie
Activity: 71
Merit: 0
"I am personally more worried about people who run with corrupted commits.db file, due to shutting their haircomb core while modified bitcoin runs."

Would creating a brand new fresh sync to make a new commits file fix this?
I wouldn't be too worried if anyone can just run a fresh new sync to solve this. (even if it may take some time for a new sync)

copper member
Activity: 82
Merit: 5
New version of haircomb core 0.3.0 is available.

8c35d7059a9d8dd23a5417a09704566918c95b2c54bec8828330b9fe1ad6b162  combfullui
ee7d8242047791a372354b94b7113d7e0d8559d74931366298664ef5178f1ba6  combfullui.exe


What is new

Fix for an unspecified issue - fork
Feature - compare commits.db file with other user interactively. Using this tool users can identify the root cause why their commits.db file may be incorrect and whose file is incorrect. If you find any corruption using this tool you are recommended to save your wallet, safe shut down your haircomb core and then delete your commits.db file. On the next start new file will be created using the "Sending commitments" window. It takes about a hour or two to create a new correct file.

Who must upgrade

All users must upgrade before the block 620000 deadline.

Compatibility

This is a fork
No change of commits.db format
No change of modified bitcoin-qt api (you can keep using the old modified bitcoin core that you already have)

Upgrading

1. Shutdown bitcoin-qt
2. Shutdown haircomb core (of course save your wallet like on every shutdown)
3. Create a new folder for the new version and move there your commits.db
4. Start haircomb core
5. Start bitcoin-qt

Downgrading

The same except in step 3 you start using the old version of combfullui

More details

It is safe to claim (regardless if you have upgraded or not).

It is safe to pay funds back to yourself inside your own wallets (regardless if you have upgraded or not).

It is considered dangerous to receive COMB payments from third parties without upgrading and until after the fork activates. So please upgrade, let everyone know and be patient.

The main reason why there is such a long delay is to ensure that 99% of users learn about the fork and upgrade before it. If there will be any users who miss this, then they must upgrade after the fork as soon as possible.

Forks are always a drama but I am personally more worried about people who run with corrupted commits.db file, due to shutting their haircomb core while modified bitcoin runs.

Never run modified bitcoin without haircomb. It causes silent corruptions. This is far more unrelated and more dangerous issue than the fork.
copper member
Activity: 82
Merit: 5

Compile error :


Thanks a lot! There should be #else. Strangely the windows build passed OK and the resulting wallet is working fine.

FORK

I have become aware of an issue in the crypto currency and would like to perform a fork triggered at height 620000

The issue is affecting users who transact can become victim of double spend but only if the attacker knows how to do it. The attacker is the sender. Claiming only users are unaffected.

I will do soon a release 0.3.0 with the fork and fix already in it and once we upgrade we simply wait till 620000 and then I would disclose the issue.

I apologize for any inconvenience and would like to remind everyone that this is a new coin with completely new cryptography. Forks are to be expected. This is our third one. Hopefully the last one.

Thank you.


Fun fact: I have a birthday today.
sr. member
Activity: 445
Merit: 250
Sorry I apologize.
Follow this link https://github.com/natasha-otomoski/bitcoin/releases
Then click btc_0_18_1.zip

The file must have checksum of 6f97ac8934b98c49ddb0b19adcfb040501b76dcb83be57c698076ccfb3cccc90

Download, unzip this file and start it as usual. (Make sure your haircomb core is already running)

Source code is mostly for linux users.


Compile error :

Code:
CXX      libbitcoin_server_a-txmempool.o
In file included from txmempool.cpp:22:
UrlRequest.h:267:6: error: #elif with no expression
 #elif
      ^
In file included from txmempool.cpp:22:
UrlRequest.h:62:81: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated]
                                decltype(_statusDescription) &statusDescription) throw(IncorrectStartLineException)
                                                                                 ^~~~~
UrlRequest.h:86:94: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated]
 Response(const std::string &startLine,decltype(_headers)&&headers,decltype(_body)&&body) throw(IncorrectStartLineException):
                                                                                          ^~~~~

In file included from txmempool.cpp:22:
UrlRequest.h:525:24: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated]
     Response perform() throw(HostIsNullException,Response::IncorrectStartLineException){
                        ^~~~~
make[2]: *** [Makefile:8389: libbitcoin_server_a-txmempool.o] Error 1
make[2]: Leaving directory '/bitcoin-0.18.1-prod/src'
make[1]: *** [Makefile:13010: all-recursive] Error 1
make[1]: Leaving directory '/Desktop/bitcoin-0.18.1-prod/src'
make: *** [Makefile:775: all-recursive] Error 1
copper member
Activity: 82
Merit: 5
Sorry I apologize.
Follow this link https://github.com/natasha-otomoski/bitcoin/releases
Then click btc_0_18_1.zip

The file must have checksum of 6f97ac8934b98c49ddb0b19adcfb040501b76dcb83be57c698076ccfb3cccc90

Download, unzip this file and start it as usual. (Make sure your haircomb core is already running)

Source code is mostly for linux users.
newbie
Activity: 71
Merit: 0
New version of modified Bitcoin Core (0.18.1) is available.

6f97ac8934b98c49ddb0b19adcfb040501b76dcb83be57c698076ccfb3cccc90  btc_0_18_1.zip

This is a feature only release, 0.19.0.1 is not used because it does not display the mempool statistics in the info window.

Requirement

This modified Bitcoin core requires the latest version (0.2.3) of Haircomb core. Please update, if you haven't already.

Features

Display all transactions that qualify to claim haircomb live in info window (TX) together with their fee and amount paid to the address.
Display new blocks live in info window (BLK) but only the transactions from the block that paid less
than 600 sats to the address (suspected haircomb claims).
Display current maximal haircomb claiming fee of all transactions that qualify to claim haircomb in the mempool.
Commits.db corruption prevention improvements.

Updating

1. Shut down the existing Modified Bitcoin Core if it is running
2. Start Haircomb Core if it is not running already.
3. Start the new Modified Bitcoin Core

Downgrading

The same except you stop the new Bitcoin Core version and start the old Bitcoin Core version.

how to build the core from the github?
i downloaded a clone zipped, but nowhere there does it have the same /bin folder with qt
thanks
copper member
Activity: 82
Merit: 5
New version of modified Bitcoin Core (0.18.1) is available.

6f97ac8934b98c49ddb0b19adcfb040501b76dcb83be57c698076ccfb3cccc90  btc_0_18_1.zip

This is a feature only release, 0.19.0.1 is not used because it does not display the mempool statistics in the info window.

Requirement

This modified Bitcoin core requires the latest version (0.2.3) of Haircomb core. Please update, if you haven't already.

Features

Display all transactions that qualify to claim haircomb live in info window (TX) together with their fee and amount paid to the address.
Display new blocks live in info window (BLK) but only the transactions from the block that paid less
than 600 sats to the address (suspected haircomb claims).
Display current maximal haircomb claiming fee of all transactions that qualify to claim haircomb in the mempool.
Commits.db corruption prevention improvements.

Updating

1. Shut down the existing Modified Bitcoin Core if it is running
2. Start Haircomb Core if it is not running already.
3. Start the new Modified Bitcoin Core

Downgrading

The same except you stop the new Bitcoin Core version and start the old Bitcoin Core version.
newbie
Activity: 71
Merit: 0
Sorry Kelozar I forgot to send the transaction to you.
Could you please allow DMs?
User 'Fizbann' has not chosen to allow messages from newbies. You should post in their relevant thread to remind them to enable this setting.

i think i just changed mine to allow. you can try, let me know.
mostly looking to see if there is a chain or sends from a certain address. so i can watch if any unconfirmed and steer clear from claiming when you are.
greatly appreciate it!
newbie
Activity: 11
Merit: 0
Sorry Kelozar I forgot to send the transaction to you.
Could you please allow DMs?
copper member
Activity: 82
Merit: 5
New version of haircomb core 0.2.3 is available.

1b21c5135eb75338e98f7babafab7a29a41ae83002c21f7c581f05a63f141b5c  combfullui
34ba0f06ecbac4cdb3fb723cce2632d0f23c3b9de1620704df2e9fc82ef79aeb  combfullui.exe


What is new

Coin anonymization - enter address you paid to in the history page, a page with only the history related to the specific address will appear (in most cases this history is shorter than the full history)

Detection of spend coin when you load your wallet. This means you will be aware that particular money appears to be already spend. It will show you the block height as well as some address that you funded to spend the coin, this allows you to lookup yourself the spend on some explorer for instance.

I also added a feature that will enable to watch on Bitcoin core the mempool live. But that requires updating the Bitcoin core too (not available currently, will be later).

Who must upgrade

This is a feature only release. Only users that need the new 3 features can upgrade. Others can remain on 0.2.2 at will.

Compatibility

Not a fork
No change of commits.db format
No change of modified bitcoin-qt api (you can keep using the old modified bitcoin core that you already have)

Upgrading

1. Shutdown bitcoin-qt
2. Shutdown haircomb core (of course save your wallet like on every shutdown)
3. Create a new folder for the new version and move there your commits.db
4. Start haircomb core
5. Start bitcoin-qt

Downgrading

The same except in step 3 you start using the old version of combfullui
copper member
Activity: 82
Merit: 5
I will do a release 0.2.3 with new features: basic coin history anonymization (further improvements possible), used key detection

Used key detection will tell you about already spent coin when you open your wallet the next time, however currently your balance is not zeroed (it's actually zero).

Anonymization is nice it allows you to export history related to particular address only (not just complete wallet history).

Then will look at the Bitcoin core, we can try to release a 0.19.0.1 core. It will display the claims in real time in the info window. It's pretty cool to watch it.

Random fact: Claiming success rate is about 25%

newbie
Activity: 11
Merit: 0
Hi, someone just started claiming using a bot

Very interesting. Is your replace by fee coded properly?

How much btc are you willing to invest?
I suppose you aren't referring to me.
But I started claiming with my ''''bot'''' on Monday/Tuesday/Wednesday, but it's off now.

My implementation of replace-by-fee works, but it is not really well done.

As for the amount of btc.... not much since I have very little. But as long as the development continues I am willing to keep claiming.

As soon as I am confident with the performance of the bot I would share it.
But It needs a lot of cleaning to do.

copper member
Activity: 82
Merit: 5
Hi, someone just started claiming using a bot

Very interesting. Is your replace by fee coded properly?

How much btc are you willing to invest?
copper member
Activity: 82
Merit: 5
Hello I can real-time monitor max fee of all P2WSH output transactions in Bitcoin core. It is printed in console. I will add it to next version of modified bitcoin core.

After a block is mined the max fee in mempool is usually small, probably 15-30 sat/byte

But later some expensive transaction arrives and bumps it to like 150 sat/byte, sometimes up to 220 sat/byte

Then a block is mined.

Here is a patch:

Code:
diff --git a/src/txmempool.cpp b/src/txmempool.cpp
index 68f47d5cc..4ca668a15 100644
--- a/src/txmempool.cpp
+++ b/src/txmempool.cpp
@@ -332,6 +332,8 @@ CTxMemPool::CTxMemPool(CBlockPolicyEstimator* estimator) :
     // accepting transactions becomes O(N^2) where N is the number
     // of transactions in the pool
     nCheckFrequency = 0;
+
+    maxP2WSHFee.clear();
 }
 
 bool CTxMemPool::isSpent(const COutPoint& outpoint) const
@@ -399,6 +401,21 @@ void CTxMemPool::addUnchecked(const CTxMemPoolEntry &entry, setEntries &setAnces
     totalTxSize += entry.GetTxSize();
     if (minerPolicyEstimator) {minerPolicyEstimator->processTransaction(entry, validFeeEstimate);}
 
+    // check if it's P2WSH
+    for (unsigned int i = 0; i < tx.vout.size(); i++) {
+     CTxOut out = tx.vout[i];
+     CScript scriptPubKey = out.scriptPubKey;
+     if (scriptPubKey.IsPayToWitnessScriptHash()) {
+ CFeeRate P2WSHFee = CFeeRate(entry.GetFee(), entry.GetTxSize()); // entry.GetTxSize();
+ uint64_t feerate = (((uint64_t)P2WSHFee.GetFeePerK()) << 32 | (((base_blob<256>)tx.GetHash()).GetUint64(0) >> 32));
+ this->maxP2WSHFee.insert(feerate);
+ feerate = *(this->maxP2WSHFee.rbegin());
+ //::maxP2WSHFee = feerate >> 32;
+ printf("MAX FEE IN POOL: %lu\n", feerate >> 32);
+ break;
+     }
+    }
+
     vTxHashes.emplace_back(tx.GetWitnessHash(), newit);
     newit->vTxHashesIdx = vTxHashes.size() - 1;
 }
@@ -553,8 +572,25 @@ void CTxMemPool::removeForBlock(const std::vector& vtx, unsigne
     for (const auto& tx : vtx)
     {
         uint256 hash = tx->GetHash();
-
         indexed_transaction_set::iterator i = mapTx.find(hash);
+
+
+     // check if it's P2WSH
+     for (unsigned int ii = 0; ii < tx->vout.size(); ii++) {
+     CTxOut out = tx->vout[ii];
+     CScript scriptPubKey = out.scriptPubKey;
+     if (scriptPubKey.IsPayToWitnessScriptHash()) {
+ CFeeRate P2WSHFee = CFeeRate((i)->GetFee(), (i)->GetTxSize()); // entry.GetTxSize();
+ uint64_t feerate = (((uint64_t)P2WSHFee.GetFeePerK()) << 32 | (((base_blob<256>)tx->GetHash()).GetUint64(0) >> 32));
+ this->maxP2WSHFee.erase(feerate);
+ feerate = *(this->maxP2WSHFee.rbegin());
+ //::maxP2WSHFee = feerate >> 32;
+ printf("MAX FEE IN POOL: %lu\n", feerate >> 32);
+ break;
+     }
+     }
+
+
         if (i != mapTx.end())
             entries.push_back(&*i);
     }
@@ -586,6 +624,7 @@ void CTxMemPool::_clear()
     blockSinceLastRollingFeeBump = false;
     rollingMinimumFeeRate = 0;
     ++nTransactionsUpdated;
+    maxP2WSHFee.clear();
 }
 
 void CTxMemPool::clear()
diff --git a/src/txmempool.h b/src/txmempool.h
index f7afaec8f..6fe7cff47 100644
--- a/src/txmempool.h
+++ b/src/txmempool.h
@@ -457,6 +457,8 @@ private:
 
 public:
 
+    std::set maxP2WSHFee;
+
     static const int ROLLING_FEE_HALFLIFE = 60 * 60 * 12; // public only for testing
 
     typedef boost::multi_index_container<
newbie
Activity: 71
Merit: 0
has anyone sold/bought any haircomb yet? or are currently trying to sell them?


Neither but if someone looking to buy, i can arrange something and use the funds to further claim.
Ofcourse taking a fee because future claims aren't guaranteed.

What would you consider to be a fair price for comb at current state? how many sats do you think are spent in average before one gets a successful claim?

i think on average 101sat/vbyte fee usually is a successful claim 90% or more of the time. (aslong as mempool isnt being TOO active)
have had lower claims but they are hit or miss, so its almost not worth sometimes to spend attempting when the chance can be a fail. instead can just spend more and its usually successful. (this is also when nobody else is claiming, as if there is someone claiming and they are watching the blocks/mempool, they can easily just increase their fee to outbid you if wanted)

tho with a decent tool to watch the mempool live, it would make it alot easier to attempt claims and increase fees when seeing a new tx that enters that is a new p2wsh output.
op4
newbie
Activity: 1
Merit: 0
has anyone sold/bought any haircomb yet? or are currently trying to sell them?


Neither but if someone looking to buy, i can arrange something and use the funds to further claim.
Ofcourse taking a fee because future claims aren't guaranteed.

What would you consider to be a fair price for comb at current state? how many sats do you think are spent in average before one gets a successful claim?
newbie
Activity: 71
Merit: 0
any chance somebody can help by creating a tool to monitor mempool live, and show highest fee unseen p2wsh. this way to help claiming. would help manual claiming tremendously. i assume eventually there will be bots automating this.
newbie
Activity: 71
Merit: 0
has anyone sold/bought any haircomb yet? or are currently trying to sell them?


Neither but if someone looking to buy, i can arrange something and use the funds to further claim.
Ofcourse taking a fee because future claims aren't guaranteed.
newbie
Activity: 17
Merit: 0
has anyone sold/bought any haircomb yet? or are currently trying to sell them?
copper member
Activity: 82
Merit: 5
There is not and won't be any way to pay from multiple keys at once.

Our combs are on different keys too. We combine the comb by paying to another
address with comb on it when the mempool is empty and fees are cheap.

Or just wait until you need to pay to more people to make it worth the bitcoin
fee. For example you can sell the comb to different people for pennies.

You can as well claim more comb using the combining payment, simply use a claim
adress as the first address following by 21 commitments, in total 22 addresses.

fold stack - don't use this. it's an experimental feature that merges addresses
you entered so far into one liquidity stack address with their total amount.
It's only used when paying to millions of people or more.

do payment - it's used to continue with the payment when you are ready


New version of haircomb core 0.2.2 is available.

b8b6bb972119b07c570989314617af81a2329c5cd08770ac8404815675190198  combfullui
c9f50a3ed90190e0d33e64342178d2f8cbc70d9e7e64f4736ad6e9a7ad025454  combfullui.exe


What is new

Block reorganization bug fixes - 3 bug fixes - on reorg mine only combbases not all commits, remove combbase from combbases on reorg, set graph dirty on reorg
Loop detector bug fix - this is a safety feature that was fixed to avoid paying to loops
Liquidity stack trickle bug - fixes hang when someone paid to liquidity stack that has 0 amount that caused a loop

Who must upgrade

All users are highly recommended to upgrade because there are reorg fixes

Compatibility

Not a fork
No change of commits.db format
No change of modified bitcoin-qt api (you can keep using the old modified bitcoin core that you already have)

Upgrading

1. Shutdown bitcoin-qt
2. Shutdown haircomb core (of course save your wallet like on every shutdown)
3. Create a new folder for the new version and move there your commits.db
4. Start haircomb core
5. Start bitcoin-qt

Downgrading

The same except in step 3 you start using the old version of combfullui
Pages:
Jump to: