Bitcoin Version Message Addrme/addryou Time Field missing + wrong protocol version

i was doing some research on the Bitcoin addrme / addryou I came across a coin which wanted 8 byte more as a Message. After quite some time looking at 3 wallets ZeroCoin/Raven/Bitcoin i got some results but i cannot understand the issue.

  1. I looked at the Bitcoin Documentation at https://en.bitcoin.it/wiki/Protocol_documentation#Network_address they mentioned there for the time field follwoing:
    4 time uint32 the Time (version >= 31402). Not present in version message.
    With the not present i was a little confused it is as desribed not present but if you lock at the logic you would think it should be present it compares the protocol Version to be greater than 31402.

Here is the ZeroCoin Wallet where i first saw the issue:

AE 5F 01 00 0D 00 00 00 00 00 00 00 B2 42 04 5F
00 00 00 00 00 E1 F5 05 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 FF FF 61 57 43 87
DC 76 00 E1 F5 05 0D 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
22 48 CA CC 0C 98 49 22 12 2F 53 61 74 6F 73 68
69 3A 30 2E 31 34 2E 30 2E 31 2F 9E 4F 04 00 01

See Here Decoding:
enter image description here

As you can see i needed to add the Timestamp into the message to make of for the 8 byte total longer message

Here is Ravencoin:

8C 11 01 00 0D 00 00 00 00 00 00 00 28 BA 03 5F
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 FF FF 61 57 43 87 ED A6 0D 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 0A 3D C3 23 3F B8 4D 38
25 2F 52 61 76 65 6E 63 6F 69 6E 3A 34 2E 32 2E
30 28 73 65 65 64 2E 72 61 76 65 6E 63 6F 69 6E
2E 6F 72 67 29 2F C9 F4 13 00 01

Ignore the fact that the strmessage is different it just cosmetic.
enter image description here

Here is Bitcoin

7F 11 01 00 09 04 00 00 00 00 00 00 27 44 04 5F
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 FF FF 61 57 43 87 DC A9 09 04
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 62 22 8D A8 33 26 00 47
10 2F 53 61 74 6F 73 68 69 3A 30 2E 32 30 2E 30
2F AC BC 09 00 01

Decodes to
enter image description here

So knowing all that information i added debug Code in 3 wallets:
into the Protocol.h (keep in mind that the syntax on raven and zerocoin is slightly different but the prints where at the same spots)

   SERIALIZE_METHODS(CAddress, obj)
    {
        SER_READ(obj, obj.nTime = TIME_INIT);
        int nVersion = s.GetVersion();
        if (s.GetType() & SER_DISK) {
            printf("nVersion %dn", nVersion);
            READWRITE(nVersion);
        } else {
            printf("Not evaluated nVersion %d Type %dn", nVersion, s.GetType());
        }
        if ((s.GetType() & SER_DISK) ||
            (nVersion >= CADDR_TIME_VERSION && !(s.GetType() & SER_GETHASH))) {
            READWRITE(obj.nTime);
            printf("nTime %dn", obj.nTime);
        } else {
            printf("Not evaluated nTime %dn", obj.nTime);
        }
        READWRITE(Using<CustomUintFormatter<8>>(obj.nServices));
        printf("nServicesInt %dn", obj.nServices);
        READWRITEAS(CService, obj);
    }

Ravencoins Output:

Receive addrMe
Not evaluated nVersion 209 Type 1
Not evaluated nTime 100000000
nServicesInt 0
Receive addrFrom
Not evaluated nVersion 209 Type 1
Not evaluated nTime 100000000
nServicesInt 13
IP:2020-07-07 09:55:24 receive version message: /Ravencoin:4.2.0(seed.ravencoin.org)/: version 70028, blocks=1308436, us=97.87.67.135:56651, peer=0

It skips Version and Time Reading

BTC’s

Receive addrMe
Not evaluated nVersion 209 Type 1
Not evaluated nTime 100000000
nServicesInt 0
Receive addrFrom
Not evaluated nVersion 209 Type 1
Not evaluated nTime 100000000
nServicesInt 1033
2020-07-07T01:35:08Z New outbound peer connected: version: 70015, blocks=638069, peer=1 (full-relay)

Same thing skip nVersion and nTime

ZeroCoin

Receive addrMe
Not evaluated nVersion 90013 Type 1
nTime 100000000
nServicesInt 0
Receive addrFrom
Not evaluated nVersion 90013 Type 1
nTime 100000000
nServicesInt 13
2020-07-07 10:01:38 receive version message: /Satoshi:0.14.0.2/: version 90030, blocks=282531, us=97.87.67.135:56726, peer=0

This one skips the nVersion cause the type doe not match however it reads the ntime cause it actual holds its protocol Version 90030.

Here are my Questions:

  1. Why does Bitcoin and ravencoin evaluates 219 as nVersion and not their protocol Version as seen with Zerocoin?
  2. Where is nVersion written the 219 i guess its part of the serialisation (i am not a c++ guy)
  3. Is that behaviour wanted that nTime is missing or is this a bug related to not checking against the corrent Protocol Number?

Thank you for your help
Sascha

Rooting my samsung j7 gone wrong

I was rooting my android phone by following youtube tutorial https://www.youtube.com/watch?v=eXyWgyW5-5M .
At step 2:11 enter image description here
after selecting bootloader only blue screen and downloading is written i.e. the above data is not written on my left top screen at the same time i started the odin and the odin log are

<ID:0/004> Added!!
<ID:0/004> Odin engine v(ID:3.1100)..
<ID:0/004> File analysis..
<ID:0/004> SetupConnection..
<ID:0/004> Initialzation..
<ID:0/004> Get PIT for mapping..
<ID:0/004> Firmware update start..
<ID:0/004> SingleDownload.
<ID:0/004> boot.img

It is not proceeding after boot.img please help me and my phone keep on restarting continuously if i stop the process and turn on device normally.

Keyboard shows wrong characters on Ubuntu 18.04

I have Ubuntu 18.04 on Toshiba. My keyboard doesn’t work well. Is shows a wrong characters ex. when I click on the character ‘m’, ‘p’ is printed. Also, some buttons show multiple characters at the same time ex. when I click on ‘c’ the pair ‘cd’ is shown !!. I tried to use the command sudo apt-get install xserver-xorg-input-all but it doesn’t work. I’m asking if anyone has already faced this problem and how to solve it?

Thank you

complexity theory – Is my reasoning wrong that $PSPACE$ should not equal $EXPTIME$?

It’s impossible for a problem to require exponential space without being exponential-time.

  1. Consider that if an $EXPSPACE~~complete$ problem can be solved in $2^n$ time. It will now fall into the class $EXPTIME$.
  2. Then $EXPSPACE~~complete$ problems are in $EXP$ if they can be solved in $2^n$ time. This means they can reduce into $EXP~~complete$ problems and vice versa.

To me, this should be easy to write a proof that $EXPTIME$ = $EXPSPACE$.

My intuition tells me that if $Exptime$ = $Expspace$; then $PSPACE$ != $EXPTIME$,

Because $PSPACE$ already is not equal to $EXPSPACE$.

Question

As an amateur, what would make this reasoning be wrong or right?

magento2 – Cannot insert widgets in CMS page or static block, somebody knowing what could be wrong?

using Magento version 2.3.5-p1.
Have the follwing problem and do not know why this is not working anymore.
Editing a block, disable editor and clicking on “insert widget” I get a “404 page not found screen.
On the log I got a debug.log containing the following:

(2020-07-02 21:48:14) main.DEBUG: URI ‘/admin/cms/page/edit/page_id/6/key/9cda62bd1db41b6a327d51c1b2b9abb85a93b75f938498bdf2b8b897c40b9247/widget_target_id/cms_page_form_content/mode/new?isAjax=true” cannot be accessed with POST method (MagentoCmsControllerAdminhtmlPageEdit) () ()
(2020-07-02 21:48:14) main.DEBUG: Request validation failed for action “MagentoCmsControllerAdminhtmlPageEditInterceptor” {“exception”:”(object) (MagentoFrameworkAppRequestInvalidRequestException(code: 0): Invalid request received at D:WebMagentoAktuellvendormagentoframeworkAppRequestHttpMethodValidator.php:69)”} ()

Any idea what could cause this error?

Because of this, I cannot insert a widget.

Please help
Best regards,
J├╝rgen

I assume everyone who is against police brutality protests that caused any property damage also believes the Boston Tea Party was wrong?

Depends on your point of view…to the British, Loyalists and even many of the rest of the Colonists who wanted a peaceful resolution, the Sons of Liberty were considered a terrorist organization…

– and I’m pretty sure that the East India Trading Company wasn’t overly fond of them either since it was their tea that got dumped.

– BUT different times, now days they would have been condemned for impersonating Native Americans when they committed their crime.

jpeg – Wrong DNG colors but correct JPG. How can I “transfer” correct colors to the DNG?

I have a Fimi X8 SE drone and it has a RAW DNG (+ JPG) capture mode.

The only downside to this is that the DNG files are somehow “broken” because all colors seems to be wrong. Strong magenta cast in the shadows, looks like green in the highlights, etc.

However, the JPG produced by the drone is perfectly normal.

My question is, is there a way to: either fix or correct the DNG colors, or somehow “transfer” the correct JPG colors onto the DNG file ?

I’ve put the images in the attachement.

Thanks in advance for anyone trying. Cordialy.

Here are the different RAW + JPG files for anyone wanted to try something: https://mega.nz/folder/0t1R3DxT#mk5tJszH-nZtTsqblTCeLA

Here are the different comparisons:

Comparison #1

Comparison #2

Comparison #3

bitcoin core – Segfault when clearing mempool. What am I doing wrong?

Background:

For a research project, I am trying to periodically clear the content of my Bitcoin node’s mempool. For this purpose I have created a new thread in init.cpp using the boost threadgroup (I have experimented with this successfully with a different project in the past and I am sure this is not the cause of the problem) in the Bitcoin Core software. In the new thread, I periodically call a function func (defined below), the sole purpose of which is to clear the content of the node’s mempool.

void func()
{
    LOCK2(cs_main, mempool.cs);
    AssertLockHeld(cs_main);
    AssertLockHeld(mempool.cs);
    mempool.clear();
}

I check for and lock critical sections that I think I should before I modify the mempool (the code above mimics what happens when a new transaction is added to the mempool; I basically looked at what happens in the NetMsgType::TX branch of ProcessMessage in net_processing.cpp and then AcceptToMemoryPoolWorker in validation.cpp and mimic that).

Issue:

When I run Bitcoin after successfully compiling my code, I sometimes immediately (i.e., as soon as the GUI window pops up) and sometimes much later in the execution face a segfault that causes the program to crash.

ubuntu@root:~$ bitcoin-qt -mpctimeout=1
Segmentation fault (core dumped)

In the code above, the function func is executed every 1 minute (represented by mpctimeout=1).

Question:

What could be causing the segfault? Could it possibly be race conditions when trying to get a lock on the mempool or execution of the main thread? It is my understanding that LOCK2 should keep trying to get a lock on the critical sections when they become available in case they are already locked by another thread/process. Since these locks only exist within the scope of the function func, they should ideally be released when returning from the function.