Skip to main content
Share Your Experience: Take the 2024 Developer Survey
6 votes
Accepted

What is the maximum, realistic P2P message payload size?

Since Bitcoin Core pull request 5843, incoming messages larger than MAX_PROTOCOL_MESSAGE_LENGTH are rejected. This constant was initially set to 2 MiB, but later (as part of the segwit changes) ...
Pieter Wuille's user avatar
4 votes
Accepted

Why do we need sendcmpct for getdata(CMPCT) - Low Bandwidth Relaying?

sendcmpct(0) simply informs the peer that compact block support is available. Without it, the peer wouldn't know that MSG_CMPCT_BLOCK is supported by us. So: sendcmpct(0) means "You can ask me ...
Pieter Wuille's user avatar
4 votes
Accepted

Why are indexes in cmpctblock and getblocktxn messages calculated as differences?

Numbers up to 252 are encoded as a single byte, while larger numbers take 3 bytes. Differential encoding is effectively a form of compression, reducing the size of the data without losing information (...
Pieter Wuille's user avatar
4 votes
Accepted

What is an inv message?

inv is short for inventory. As the Bitcoin wiki says: Inventory vectors are used for notifying other nodes about objects they have or data which is being requested. Inventory vectors consist of the ...
Michael Folkson's user avatar
3 votes
Accepted

Broadcast a valid block to network, without a local full node

What message could he send to the node to be confident that his valid block will be broadcast to the network and appended to the chain? You can never be confident. The node you connect to may be ...
Pieter Wuille's user avatar
3 votes
Accepted

What is the purpose of version field in version messages exchanged during establishing a connection?

A node establishes which "language" it will speak with other nodes per the protocol version. The protocol version defines which messages exist and what responses are deemed acceptable to ...
Murch's user avatar
  • 75.7k
3 votes
Accepted

Can everyone see "message signatures" I create & verify?

Message signing is a purely local operation. No connection to the network is even required for it. Nobody can see the message except those whom you send it to, and whomever else they share the data ...
Pieter Wuille's user avatar
3 votes
Accepted

How to store arbitrary data in the bitcoin blockchain and how can I differentiate between a transaction an those data?

Have a look to these data sources: https://bitcointalk.org/index.php?topic=1023190 https://github.com/petertodd/python-bitcoinlib/blob/master/examples/publish-text.py And of course the "modern" (and ...
amaclin's user avatar
  • 6,780
3 votes

Why DARPA wants blockchain based secure messaging system

As I see it, the key part is at the very end: "traceable in a decentralized ledger". That feature isn't described in the EFF page you cite, and I'm not aware that any of the services listed provide ...
Nate Eldredge's user avatar
2 votes
Accepted

Why DARPA wants blockchain based secure messaging system

Here's what I think how such a system could work: A relatively small but geographically distributed network of well-connected nodes maintain a ripple-like ledger (https://ripple.com/files/...
Hans-Martin Mosner's user avatar
2 votes

Is there a difference between relaying a transaction and relaying a block?

The wiki is terribly outdated, check out the Bitcoin developer guide instead: The response to a getdata message can be a tx message, block message, merkleblock message, or notfound message. Source:...
Murch's user avatar
  • 75.7k
2 votes

How does a BIP70 url look like? I want to send my email to the person I'm sending my coins to.

There isn't any such thing as a "BIP70 URI" as I understand it. To use BIP70, the client fetches a payment request from somewhere, typically an ordinary https url (which can also be embedded in a ...
Nate Eldredge's user avatar
2 votes
Accepted

What is the character limit for sending an Ardor message to another account?

The character limit for a non-prunable message is 160 characters, but if its prunable it is max 42K. Find the api parameter: messageIsPrunable=true
Patoshi パトシ's user avatar
2 votes

In which Block was Len Sassaman memorialised?

Find it yourself with my preprocessed ASCII strings data At https://github.com/cirosantilli/bitcoin-strings-with-txids I have uploaded a dump of all ASCII strings of length 20 or greater, including ...
Ciro Santilli OurBigBook.com's user avatar
1 vote

What is the purpose of version field in version messages exchanged during establishing a connection?

The purpose of version field in version messages exchanged during establishing a connection is for the nodes to see which features they can negotiate with each other. The fact that some node supports ...
Cosmos's user avatar
  • 199
1 vote
Accepted

Is index or short transaction ID sent in getblocktxn messages?

This seems to be an erratum in that note in BIP152. The getblocktxn message contains a BlockTransactionRequests, which contains a list of differentially encoded transaction indices (i.e., the ...
Pieter Wuille's user avatar
1 vote
Accepted

Are two null bytes appended to the end of the Short Transaction ID?

This is an implementation detail; it is up to you. The short transaction ID is a 48-bit number, obtained by computing the SipHash-2-4 (a 64-bit number) as described in those documents, and setting the ...
Pieter Wuille's user avatar
1 vote

What is an inv message?

Michael's answer was very helpful for me, but I think it is also helpful to take a look at the source code and implementation of inv messages while the question is tagged bitcoin-core-development. ...
Amir reza Riahi's user avatar
1 vote

Sending "generalized" secret messages over LN using "Lightning messages"

yes it can! As part of the offers proposal Rusty is currently suggesting to add a standard for so called onion messages to BOLT 07. You can find more details in the open pull request: https://github....
Rene Pickhardt's user avatar
1 vote

I have a 100 character text message and I want to encrypt this message with my bitcoin "PUBLIC KEY" and decrypt it with my private key in Javascript

You could use something like this eccrypto (Do your own research on the security of this implementation). Also, doesn't appear to allow compressed public keys. Update: It now supports compressed keys ...
JBaczuk's user avatar
  • 7,418
1 vote
Accepted

In Ardor, can you send a message with ZERO ignis balance on a brand new account that has never made a transaction before?

From riker in slack: The ability to submit a transaction with 0 fee from a new account is currently blocked by several layers of protection inherited from NXT: The wallet does not allow it. The API ...
MrV's user avatar
  • 310
1 vote
Accepted

Does bitcoind send message headers and payload separately in P2P protocol?

TCP is a stream protocol. Even though on the wire the stream is submitted as a series of IP messages, semantically it is just a stream of bytes. This means that at the application level you shouldn't ...
Pieter Wuille's user avatar
1 vote

Use bitcoin blockchain as a way to send messages to another address purposely setting a 0 fee or a very low fee?

This is possible, but there is always a chance your tx will confirm. As a drawback, the blockchain is public, so the entire world will be able to view your message, assuming they know what to look ...
chytrik's user avatar
  • 18.3k
1 vote

Adding a note or message to payment?

That doesn't make any sense to me. There is no receiver info in Bitcoin. Was this requested additionally to providing a recipient address? Otherwise perhaps they meant that you should use the order ...
Murch's user avatar
  • 75.7k
1 vote
Accepted

Attaching additional data / text message to a Bitcoin transaction?

The obvious solution would be to require payments to have an OP_RETURN output with an email address encrypted to you. This isn't simple and there isn't a wallet out there that supports something like ...
Jimmy Song's user avatar
  • 7,759
1 vote
Accepted

Wallets that support 40 byte message attachment via OP_RETURN? Desktop / Mobile?

I work with obviously unspendable addresses. Send any one single line from a thin client, phone. Use a core node to bundle long messages with sendmany. https://live.blockcypher.com/doge/tx/...
John Rigler's user avatar
1 vote

Wallets that support 40 byte message attachment via OP_RETURN? Desktop / Mobile?

Which desktop / mobile wallets support adding a custom OP_RETURN message? (ex. attach a short url link) Coinb.in New -> Transaction -> Advanced Options Null Data (80 byte limit, 40 bytes ...
Stephen Gornick's user avatar

Only top scored, non community-wiki answers of a minimum length are eligible