Pages:
Author

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

jr. member
Activity: 248
Merit: 7
@natasha-otomoski
You have a very interesting name.  Grin

Ok, here's a 1BTC puzzle.

The question is the following:

WhyTheCombOfNatashaOtomoskiHas21Teeth?.txt

The solution is a 32 characters long plain-text (the private key).

Hint: 8 camel case english words, no special symbols

Happy puzzling!

G/cbms/K/DNzcRin5v2B03iXdbpdVoZbTebt7KG95j3FUqnJvcP9rDYcGpSV27RLspR7SlPjqma4h0tDAMwovIo=

txid 39ae730abf9190f1985a3600e35b6451efc51bfb885bc9d1c3b91d502de3907d
copper member
Activity: 82
Merit: 5
Hello I am back from vacation. On the vacation I've been researching into a viability hash table for haircomb, one that works similar to a bloom filter and is append only (suitable for use in blockchain).
It won't be used anytime soon it remains on the will look at it later list perhaps forever.

In the coming days we will fork so I will explain the boring details of the fork and then, we get into the interesting parts we will be testing Amount Decided Later payments. They are very cool and allow for comb trades (trades between different haircomb tokens -- without an exchange)
newbie
Activity: 11
Merit: 0
looks like interest for this token has mostly been quiet now. have not seen any claims in the info window for days/weeks as well.
also price to claim has been rising due to mempool being more active now. im predicting mempool will continue to be more active as we continue this bull market on btc
good we have had the chance to claim for a bit cheaper earlier.
still looking forward to see what this coin can be worth in the future. in satoshi price ofcourse.
Indeed, lucky us that were able to claim when there wasn't much competition.
Now it's more expensive and less probable to win the claim.

Let's see if the updates keep coming




newbie
Activity: 71
Merit: 0
looks like interest for this token has mostly been quiet now. have not seen any claims in the info window for days/weeks as well.
also price to claim has been rising due to mempool being more active now. im predicting mempool will continue to be more active as we continue this bull market on btc
good we have had the chance to claim for a bit cheaper earlier.
still looking forward to see what this coin can be worth in the future. in satoshi price ofcourse.
copper member
Activity: 82
Merit: 5
New version of haircomb core 0.3.1 is available.

5c5c1a9b9f97dbf38381bc09b94bccd3fc6dd59d3d0f14a7665c20eb6f421aab  combfullui
c931da7ba13ed5c2a1c2254896d7e76a438240116d1db2474e32d21a7cb2c878  combfullui.exe

What is new

Fix for an unspecified issue - fork
The previous proposed fork - 0.3.0 - contains multiple flaws. They are addressed in this release
Change to commits.db format to trigger at block 620000

Who must upgrade

All users must upgrade before the block 620000 deadline.

Compatibility

This is a fork
Change of commits.db format at block 620000. It will change automatically, but please don't run outdated versions like 0.3.0 after block 620000 again.
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

My answer about bad commits.db file contents

Quote
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)

Yes the issue is easily fixed if the node operator becomes aware of the issue. Furthermore there is 99% no need to sync bitcoin from block 0. Simply sync the haircomb again. Bitcoin blockchain contents is most likely correct.

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.
Pages:
Jump to: