What is the exact difference between combinepsbt and joinpsbts

They seem to do pretty much the same thing. The only apparent difference being that combinepsbt seems more for updating the same psbt with imcremental signatures while joinpsbts seems more for joining different transactions but given in combinepsbt you can also add different inputs and outputs I don’t see the difference.

How do nodes come to consensus on whether a timestamp is valid?

From bitcoin wiki:

A timestamp is accepted as valid if it is greater than the median timestamp of previous 11 blocks, and less than the network-adjusted time + 2 hours.

If a miner submits a block timestamp on the cusp of the network-adjusted time + 2 hours threshold, some nodes will see the block as valid and some will see the block as invalid, regardless of the work done on the block. How do nodes come to consensus on whether the block is valid?

Are transactions with the same ScriptSig a security problem?

For instance while looking at the transaction stack of my address, tracing it to exchanges I use, I came across this:

https://www.blockchain.com/btc/tx/543f319e52123528847681ffc62941219196983b6b2daa51aa7fd44c9bc5c981

ScriptSig: PUSHDATA(34)[0020431a072cb6352277b34d2bd4b7963939c37c2f121feb288106f64369eb1467d6]

The same ScriptSig occurs twice on this page within the same transaction?

I know reading years ago in paper by someone was outlining how you can derive the private key from the scriptsig but I remember you need to have way more data in the field…in other words: the value between two inputs should match but there were other different values? Here it’s just the exact same string but occuring twice?

aka, example of signature I am sure it’s hackable:

(some header data) + (vulnerable data that occurs in other inputs) + (some more data)

very dumbed-down example:

00207777777777777777777777777123123 <- input1; 00217777777777777777777777777000000 <- input2

then by doing some simple math people can get the private key from input1 and input2 (multiplying/dviding etc, forgot how it worked just because the middle is the same of both inputs).

I have no idea what is ‘witness’ either, guessing miner who confirmed it?

Lightning node on a Bitcoin SPV

is there a way to run a Lightning node on a Bitcoin SPV node at the moment? I’ve read that both lnd and c-lightning need a Bitcoin Fullnode at this time. This might seem ignorant but i don’t want to go through the hassle of syncing the whole chain for a small test setup right now. The Bitcoin Lightning Wallet for Android for example claims to run on a Bitcoin SPV so there has to be a way.

Thanks, any help is appreciated.

Can’t send transaction with sendtoaddress

I’m trying to send some transaction with sendtoaddress method. That is not Bitcoin it self but it’s fork. You can see it here https://github.com/PACCommunity/PAC

my command looks like this

paccoin-cli sendtoaddress someaddress 25 

I get this response from cli

error code: -4 error message: Transaction amount too small 

Is there any method that I can call to see if the amount is too small or not? This looks something like this

paccoin-cli isamounttoosmalltosend someaddress 25 

and it should give me true/false value

Is there anything like that?

BTC Exchange function requirements [on hold]

I am very new to this field. I am trying to do my own crypto from BTC and modifying some function. On curiosity, I want to learn if these list of RPC calls are necessary and needed when you list your coin in exchanges? Thanks!

Addwitnessaddress

Create-wallet

Getaddressinfo

Getrawchangeaddress

Getreceivedbylabel

Importprunedfunds

Sethdseed

Setlabel

Signrawtransactionwithwallet

Unloadwallet

Walletcreatefundedpsbt

Walletprocesspsbt