The Protocol specification on bitcoin.it is out of date. Although the Bitcoin Core client itself is the specification (according to most I hear from), it is useful to have a natural language reference. Where can I get an up to date English version of the bitcoin Protocol specification?
sdp
The guide and reference here: https://bitcoin.org/en/developer-documentation should be what you are looking for.
|
|
|
that's not good, is it?
It's not necessarily bad though. what are these Errors at the bottom? when the gui client opens, it still says 0.93.3 and isn't updating:
Ubuntu:~/BitcoinArmory$ python ArmoryQt.py ******************************************************************************** Loading Armory Engine: Armory Version: 0.94.1 Armory Build: x PyBtcWallet Version: 1.35 Detected Operating system: Linux OS Variant : ('Ubuntu', '14.04', 'trusty') User home-directory : /home/x Satoshi BTC directory : /home/x/.bitcoin/ Armory home dir : /home/x/.armory/ ArmoryDB directory : /home/x/.armory/databases Armory settings file : /home/x/.armory/ArmorySettings.txt Armory log file : /home/x/.armory/armorylog.txt Do wallet checking : True (ERROR) ArmoryQt.py:6996 - Socket already in use. Sending CLI args to existing proc. (ERROR) ArmoryQt.py:7000 - Exiting...
It means the the socket that armory uses is in use. This probably means you already have armory open.
|
|
|
See above! I strongly suspect that's your issue (git checkout master can only have performed that exact command; etotheipi's master branch is still on 93.3, whereas the goatpig master branch is at 94.1)
does goatpig have 0.94.1 git tagged?: Ubuntu:~/BitcoinArmory$ git tag -v v0.94.1 error: 811798a9282d216e0a450fe342d8a4671fee01d3: cannot verify a non-tag object of type commit. error: could not verify the tag 'v0.94.1'
It isn't signed. He does. I suspect there's some minor error in the version string you're supplying, but that's only a guess. I don't make use of that particular git command, so can't help you specifically with it from off the top of my head unfortunately.
ok, got it. now how do i delete Armory's copy of the blockchain? Go to the armory data directory and delete everything in the "databases" folder.
|
|
|
I readed this. ONLY data from the PREVIOUS transaction is signed! Data in CURRENT transaction is not signet and not protected from changing. Right?
NO! With sighash all, all of the data in the current transaction, except for the signature itself, is signed. This prevents any transaction data from being changed. Where this wrote? Give me please link to any document or source code? Now i can see only includes the txid and vout from the previous transaction and also includes the pubkey script from the previous transaction See https://bitcoin.org/en/developer-guide#signature-hash-typesIt's also in the source somewhere.
|
|
|
I readed this. ONLY data from the PREVIOUS transaction is signed! Data in CURRENT transaction is not signet and not protected from changing. Right?
NO! With sighash all, all of the data in the current transaction, except for the signature itself, is signed. This prevents any transaction data from being changed.
|
|
|
Nope, not possible. The scriptsig, if using sighash all (the default), is a signature of the hash of the transaction. If part of the transaction is changed, the hash will no longer match and thus the signature will no longer be valid and thus the transaction ID invalid.
Thank you for responce. Is there any documentation how "scriptSig" is constructing for given transaction? [/quote] There is probably something about it on https://bitcoin.org/en/developer-documentation. Otherwise you can look in the code.
|
|
|
No. You are converting it back to binary. What you just need to do is keep the hex string as it is but instead of hashing it as a string, hash it as bytes. Use the website I posted earlier.
I tried using that website, but it outputs 16 different fields only one of which contains the word bytes and that just shows the same information from step 5 except uppercase letters have been replaced with lower case letters... Is that what I am looking for...? You have to put the hex string in the text box on the field labeled "binary hash". Then scroll down and find the one labeled "sha256" and copy the hex string and put that in text box in "binary hash". Then scroll down again and the hash in" sha256" is the hash that you want for step 4
|
|
|
Hi, I'm learning the basics of Bitcoin protocol and have a question.
When i push raw transaction to the network, all nodes may read it for checking...
If some "bad-hacker" node will save my "scriptSig" for transaction inputs, but will change my "scriptPubKey" for outputs. Then the scammer may send a fake transaction to other nodes and there's a possibility to lose my money?
Nope, not possible. The scriptsig, if using sighash all (the default), is a signature of the hash of the transaction. If part of the transaction is changed, the hash will no longer match and thus the signature will no longer be valid and thus the transaction ID invalid.
|
|
|
Thank you so much for your help, I'm getting closer and closer... OK, so i THINK I have that step figured out... If I'm not mistaken, when I convert the hex string from step 5 back to hex bytes it becomes: 1000 0000 0100 0100 1101 0000 0000 1111 0110 1110 1011 0010 1110 0101 0100 1001 0001 1100 1101 0111 1010 1011 0111 1110 0111 0001 1000 0101 1101 1000 0001 1011 0110 0111 1010 0010 0011 1100 0100 1001 1000 0000 1111 0110 0010 1011 0010 1110 1101 0000 1001 0001 0100 1101 0011 0010 1011 0111 1110 1011 0001 1100 0101 0101 Not really sure what to do from here though... No. You are converting it back to binary. What you just need to do is keep the hex string as it is but instead of hashing it as a string, hash it as bytes. Use the website I posted earlier.
|
|
|
Sorry, I don't understand what you mean by hex bytes...
I have had no formal coding instruction, I am entirely self-taught so I apologize if I am misunderstanding something very basic.
I tried to look up what you mean using Google but could not seem to find anything relevant.
How would I go about convert my hex string to hex bytes...?
So what you have is a hex string which is different from hex bytes. Hex bytes are the human readable form of binary. If you were to convert a set of hex bytes to binary, you would get the 1's and 0's that a computer reads. On the other hand, if you have a string, you have something completely different. At the binary level, each character in the string is a set of bytes, and when you hash the string, you are hashing those bytes, and not the bytes that you actually want which you read in the string. To hash the bytes, you can use this site: http://www.fileformat.info/tool/hash.htm. Enter the hex string into "Binary Hash" field and it will give you the hashes down below. When you hash again, make sure you do the same thing and hash the bytes.
|
|
|
I found your problem. You are hashing as a string, not as bytes. You need to always hash the hex as hex bytes.
|
|
|
To convert the last string (step 5) to base58, you just do a normal base conversion. Take the string and think of it as a massive number in base 16. Then you just need to do the standard procedure for converting between bases and convert it to base58. There is a variety of software that will do this because doing it by hand is a major pain. This should help you: https://en.bitcoin.it/wiki/Base58Check_encoding#Base58_symbol_chart
|
|
|
How do I do static link for compiling ubuntu wallet? x11 algorithm, which code I need to use and put where? in main.h ?Thanks
You have to do it in the makefile. I'm not quite sure how though, google it.
|
|
|
when I try to run the ubuntu wallet, mycoin-qt it shows: error while loading shared libraries: libdb_cxx-5.1.so: cannot open shared object file: No such file or directory
I must run command: sudo apt-get install build-essential libboost-all-dev libcurl4-openssl-dev libdb5.1-dev libdb5.1++-dev git qt-sdk libminiupnpc-dev
Is there any way I can include the libraries in the mycoin-qt file so I do not need to inlude the libraries?
I think you need to statically link the libraries when you compile.
|
|
|
what is the exact error that happens?
|
|
|
What is the transaction id of the transaction?
|
|
|
I have seen some threads that sell higher rank bitcointalk accounts. What are the methods so that i can securely get one? The account is connected within an email, what about that ? I am new to account trading. Please help.
You can open a WTB (want to buy) thread looking for an account. Usually you state your budget and the account rank you want and any specifics. Or you can look around the Digital Goods and Auctions sections and find threads where people are looking to sell accounts. You can buy an account from there, they usually specify the price and the stats of the account that is being sold. When you buy an account, you should use an escrow and always ask for a signed message from an old address posted by the account. The escrow will check the account is what was specified and that the signed message is valid. Then he will send you the account details and you should do the same. When you get an account, always change the password and email and also unset the security question.
|
|
|
Thank you! doing it right now. now, what happens with the 1.9 BTC that are not anywhere, they are not in my wallet because the wallet says that it send it, and the tx is not on the blockchain ![Sad](https://bitcointalk.org/Smileys/default/sad.gif) can I resend the TX manually? or i just have to wait and the wallet will resend it? (if so, how long should i leave the wallet online for that to happen? thanks! Indkt. It should periodically rebroadcast the transaction. However, you can just get the raw hex of the transaction and send it yourself. You can right click the transaction in the transactions list and select "Copy Raw Transaction" and then go to Help > Debug window > Console and type into the box sendrawtransaction <pasted raw tx> where <pasted raw tx> is just pasting what you copied there. Then hit enter and it will send.
|
|
|
HUH so it is not a reindexing problem it is a corrupted data block then?
jeez with my ISP it would take a week to download 70 GB !, can i copy the blockchain from another core wallet? will that work?
do I need to do a --reindex if i do that or it is not necessary? thank you!
Yes, you can copy it from another instance of Bitcoin Core. It won't require a reindex. You will need to copy the blocks, chainstate, and database folders.
|
|
|
|