wireshark packet analysis missing checksum in version msg

I’m trying to send a raw bitcoin transaction through a raw socket connection in python. To debug I’m using wireshark to sniff the packets.

Wireshark figures out that the packet is for Bitcoin and that it’s a ‘version’ message, and gets the first couple fields right, but then neglects the checksum field and instead assigns what should be the checksum to the protocol version, throwing everything else off. I can’t seem to get to the bottom of it.

Other message types, like ‘tx’, include the checksum but have other issues (I’ll get to later). Any ideas why wireshark isn’t picking up on the checksum for the version message?

How do you get a Bitcoin Public Key from a Private Key

How do I, in extreme specificity, convert a given private bitcoin key into a public bitcoin key (Talk to me like I’m 5 and I have to do this step by step or the evil witch will cook me alive in her oven). NOT where can I find a program that will do this, but if I were to do it myself, what would I do?

Private Key:

18E14A7B6A307F426A94F8114701E7C8E774E7F9A47E2C2035DB29A206321725

supposedly results in the public key:

0450863AD64A87AE8A2FE83C1AF1A8403CB53F53E486D8511DAD8A04887E5B23522CD470243453A299FA9E77237716103ABC11A1DF38855ED6F2EE187E9C582BA6

Others have asked how to get private to public, I haven’t seen a really specific answer, just more general direction, but no answers explain all the variables. I understand this is rather complex and if a given individual thinks its too much work to answer, I totally respect that. Note: I do not care for the Bitcoin Address, just interested in Privatekey to Publickey and the specifics of how.

Variables such as the “a” and “b” in the ECDSA Curve Algorithm are already designated by Bitcoin (according to https://en.bitcoin.it/wiki/Secp256k1). the “base point” aka “G” is also specified on that page. the “private exponent” or “k”, I have yet to find. Some of these variables are supposedly “random” which appears to be false as every generator that you can put a private key into seems to always spit out the same public key…so…. all the variables are either already preset or are derived from the private key.

Thanks for any help on this. I’ve been trying to research and understand this for days, but it seems sometimes I don’t understand the terms and or notations, but I think I’ve gotten past that and now am just missing parts of the equation.

EDIT ADD:
This is the previous stated private key in Decimal:

11253563012059685825953619222107823549092147699031672238385790369351542642469

This is the previous stated public key (x and y values) in decimal:

36422191471907241029883925342251831624200921388586025344128047678873736520530
20277110887056303803699431755396003735040374760118964734768299847012543114150

All I want to know is how to go from that private key to the public key. Supposedly it is a simple equation that doesn’t involve bit shifting or xor etc. It may include “point multiplication” (which I don’t see how you can multiply a point defined as having both an x and a y). No one seems to understand the intricacies of this. Do you guys suggest I actually offer some fraction of a bitcoin to whoever explains it clearly?