Bitcoin Forum
May 27, 2024, 10:29:47 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: « 1 2 3 4 5 6 7 8 9 10 11 [12] 13 »
221  Bitcoin / Development & Technical Discussion / Re: Learning to program on the blockchain? on: September 01, 2017, 05:41:37 PM
@bitbollo
Quote
Hi pebwindkraft in which section Andreas Antonopoulos explain how to program on the blockchain?

His book gives an overview of how the bitcoin world "works", and has many examples on the data structures and how they interact.
It is not a book "how to program the blockchain" btw: I like achow101's comment on this  Grin
But it helps you to understand the detail and if something is unclear, you can even use it as a reference.
222  Bitcoin / Development & Technical Discussion / Re: How to get involved to understand crypto world on: September 01, 2017, 10:57:59 AM
...
Got any recommendations on reading up on DAGs in the context of cryptocurrencies? I've been reading the Byteball whitepaper lately and I'm not quite sure what to make of it.
no, just this currently very active thread: https://bitcointalk.org/index.php?topic=1177633.0 and the usual suspects via Google. I read the whitepaper like 2 years ago, and couldn't make up my mind. "I feel more comfortable in the bitcoin world"  Grin

just saw this one as well: https://bitcointalk.org/index.php?topic=1504649.0
223  Bitcoin / Development & Technical Discussion / Re: Bitcoin double spend UTXO on same block on: September 01, 2017, 09:26:53 AM
In short, rules are defined here:
https://en.bitcoin.it/wiki/Protocol_rules#.22tx.22_messages
say: "reject if we already have matching tx in the pool, or in a block in the main branch"

I didn't follow/verify all your example, but I think such a double spend would be detected in the mempool.
224  Bitcoin / Development & Technical Discussion / Re: How to get involved to understand crypto world on: September 01, 2017, 09:20:39 AM
what do you mean? Where to get the most value by entering into the domain?
Crypto currencies all have different flavours, from blockchain timing, over blockchain design up to smart contracts.
I'd recommend starting with Bitcoin. Thats like a foundation to the many crypto currencies, and go step by step. Once you grasped it, and can't get enough Cheesy, continue with "smart contracts" (yes, Ether is a possibility, also AEON, written in ERLANG), and then maybe have a look at DAGs.
There is plenty of room in this space  Grin
225  Bitcoin / Development & Technical Discussion / Re: Post your SegWit questions here - open discussion - big week for Bitcoin! on: September 01, 2017, 09:13:40 AM
<snip>
Because old clients will not receive transactions in the segwit transaction format. Segwit transactions will only be sent in response to a getdata for inv type MSG_WITNESS_TX. However old nodes will not have that inv type in their getdata messages, only MSG_TX, which indicates to segwit capable nodes to send the transaction in the legacy format.
So legacy bitcoin nodes will receive the same data, except without the witness data at the end, correct? I think I finally understand why it's called a soft fork now, these legacy nodes are virtually untouched through segwit.  Am I correct on this, or did I still get it wrong?
ok, I got that, with the MSG_TX and Segwit tx will only be sent in response to getdata. I still have to get the full picture...
Assume I have a segwit capable client, created a segwit tx, and push it into the network. Potentially an "old" full client can fetch the tx. If so, what is he doing: rejecting the transaction, cause he receives "zero" TX_IN_Count ?

p.s.: looked up communication between nodes (here it is getheaders): https://bitcointalk.org/index.php?topic=1573616.0, looks like I need to dive deeper...
226  Bitcoin / Development & Technical Discussion / Re: Post your SegWit questions here - open discussion - big week for Bitcoin! on: August 31, 2017, 06:49:44 PM
I can't get the details to understand how old clients work with segwit transactions.
I find phrases like <old clients see segwit tx as "anyone can spend">. And then phrases like "old clients don't forward segwit tx" (cause they are invalid?).
So as usual I take a look into the description: (https://bitcoin.org/en/developer-reference#raw-transaction-format)

Quote
Name           Data Type           Description
version         uint32_t              Transaction version number
tx_in count   compactSize uint  Number of inputs in this transaction.
tx_in            txIn                    Transaction inputs as outpoint data structure
 ->prev_out  outpoint              Previous outpoint, beginning with tx ID hash
...

Signed SegWit tx are serialized in this way (https://bitcoincore.org/en/segwit_wallet_dev/):
 nVersion|marker|flag|txins|txouts|witness|nLockTime
    Format of nVersion, txins, txouts, and nLockTime are same as the original format
    The marker MUST be 0x00
    The flag MUST be 0x01
    ...

Looking at the way an old client would receive data, he would get serialized data:

 nVersion   | Marker | flag | txins ...
 01000000      00        01    ...

So the old client would interprete the nVersion code correctly, but then would get a "00" (the marker field) as the "tx_in count", trying to get the following "01" as the tx_in structure. This tx_in structure begins with an outpoint, that has a tx ID hash as first element. So the "01" and subsequent hex characters would build the TX ID Hash (32Bytes).

I would think, that already the marker field ("00") would make the tx invalid for an old client (zero input not allowed?), and then the tx_in structure (and the tx ID hash field) is filled with "garbled" data.

How can this segwit tx then be seen as transparent to the old client?  Wouldn't the old client simply mark it as invalid?

thx  Huh
227  Bitcoin / Development & Technical Discussion / Re: How to get involved to understand crypto world on: August 31, 2017, 05:59:30 PM
Hi,

the crazy world of crypto would bring you immedeatly to bitcoin.org, to understand the eco system. There is a developer section: https://bitcoin.org/en/developer-documentation
Then you could read probably the online book (or buy it) from Andreas: "Mastering Bitcoin", here: http://chimera.labs.oreilly.com/books/1234000001802/ It is available in many languages.
Also there is the very good post from Ken: http://www.righto.com/2014/02/bitcoins-hard-way-using-raw-bitcoin.html
On youtube you find Bitcoin 101, which explains alot.
And of course this forum has many links/references, similiar here: https://bitcointalk.org/index.php?topic=2131710
228  Bitcoin / Development & Technical Discussion / Re: Bitcoind is a mess, an alternative for Low level bitcoin programming? on: August 30, 2017, 04:33:51 PM
plus, any real developer can secure a windows server, it takes work but same applies to securing a linux distro. 
no - sorry, no. I think this is too easy. Forces me into another comment (rant?  Roll Eyes):

Windows 10 comes per default with "calling home" functionlaity, and you can de-activate it. Yes, but that's not my point. Also not the ongoing automatic "security" updates (which proofs, that software wasn't written correctly - and this is from professinal enterprise software developpers). Without wanting to go into real details and the overhowling long history of vulnarabilities in the operating system, you cannot trust closed source systems and drivers. You almost never have the source code to evaluate the possibly of hidden malfunctions. Compare this to Unix or xBSD, deep down into the kernel.  Ahh, the kernel... the windoofs kernel integrates sooooo many functions and drivers, that the layer of rights can be easily violated with a single piece of software, and you don't know it. In Linux and xBSD and OSX the underlying OS has an onion type approach, for segregation of duties (best is OpenBSD IMHO).
Whereas in older times it was annoying, that you got a blue screen, and had to restart your machine, nowadays it became a threat. And this threat became very much clear with the audio driver on HP systems. The audio driver logged each (cool, eh?) keystroke. Well, one might ask, why does an audio driver need to log each keystroke, but that's not the point where I want to go to. Fact is, this happens all the time, and imagine you are typing in your privkey or seed, and it is logged into a data structure, where you don't know what happens with it. Bitcoin is well enough known today, to store enourmos amounts of money... How can someone evaluate a closed source driver update (for sure only for security reasons)?
What I try to say: Windows might be ok, as an operating system for companies and enterprises, cause they can afford to calculate the risk against the necessary security extensions. Same for professional or enterprise devs: how much additional effort do I need to take, to make it secure? This does not prevent developpers from providing bad code (as we have seen with many failing exchanges), due to financial constraints.
My personal view is: to store values as little as your fiat wallet, any wallet/OS like breadwalet or airbitz or even online wallets. I think this is ok. In the northern hermisphere, most of us can carry the risk to loose 50 or 100 Euros/Dollars/Pounds in Bitcoin. But when it comes to values like 1000 or 10.000 ? Then you won't trust blindly the underlying system. You want to take precaucious measurements. And as a developper you would want to provide (hopefully security audited) code to the community - and not a quick and dirty assembled piece of software error prone for the next buffer overflows.

ok, enough ranting around, let's go to work! It is better to start coding, and then improve, as to buid an entry barrier that would make people scary and avoid diving into the crypto space. So remains only my personal view, and is by no means inetnded to be offensive to anyone...
 
229  Bitcoin / Development & Technical Discussion / Re: Learning to program on the blockchain? on: August 30, 2017, 09:53:51 AM
We need more programmers in this exciting crypto currency world - welcome!
There is a common understanding, that you need to have 5000 working hours to become an expert.
And in crypto currency world, it is not only about programming, also you need to understand the eco system and the security - it's all about money, right ?  Wink
 
On programming: no matter what language you go, I recommend a short training course. There are many, many courses (coursera, udemy, ...) online, or you go to your local school and verify opportunities. It makes sense to have people to exchange with, that makes learning easier.

On crypt currencies: professionals usually start with reading before coding. This would bring you immedeatly to bitcoin.org, to understand the eco system.
Then you could read probably the online book (or buy it) from Andreas: "Mastering Bitcoin", here: http://chimera.labs.oreilly.com/books/1234000001802/ It is available in many languages.
Also there is the very good post from Ken: http://www.righto.com/2014/02/bitcoins-hard-way-using-raw-bitcoin.html
On youtube you find Bitcoin 101, which explains alot.
230  Bitcoin / Development & Technical Discussion / Re: Private key calculations on: August 29, 2017, 07:24:49 AM
besides the ones already mentioned, I used these links to play with keys and addresses:

https://www.bitaddress.org/
http://lenschulwitz.com/base58
http://ciyam.org/rawtx_helper.html
231  Bitcoin / Development & Technical Discussion / Re: Bitcoind is a mess, an alternative for Low level bitcoin programming? on: August 29, 2017, 07:15:49 AM
there is something really wrong with this post  Huh, and it starts with the header. Then there is lot of bla bla about a big team. And the impression is given, that there is lots of experience and knowledge behind. Just to finalize with "code = doc?". And a certain lazyness attitude. This is all fairly ok for a newbie. But doesn't match with the intro words. You can certainly get better answers, if you stay away from storytails, and get to the points immedeatly.

Welcome to the crazy world of crypto currency. So you want to deep dive into crypto?
With C# using a windows machine??? Go and get some professional equipment first (Mac, Unix, OpenBSD,...), we are talking security here.

Yes, there are some Java libraries, python codes and more, when you dig through the forum.
Quote
------ if a 'ground-up' approach IS necessary: --------

So, if i do need to start doing this all without an api, where do i start? im sure i can dig through qt's source but wow... there is a LOT to look through. and ift his is the case, how are wallets created? are they even a thing or is it all a matter of just storing public and private keys, decrypting, deserializing responses from the nodes, and handling however i like?

Professionals usually start with reading before coding. This would bring you immedeatly to bitcoin.org, to understand the eco system (and it's code).
Then you could read probably the online book (or buy it) from Andreas: "Mastering Bitcoin", here: http://chimera.labs.oreilly.com/books/1234000001802/
I recommend especially the chapter 4 on wallets.
Also there is the very good post from Ken: http://www.righto.com/2014/02/bitcoins-hard-way-using-raw-bitcoin.html
On youtube you find Bitcoin 101, which explains alot.

Quote
what IS a wallet? does the blockchain/nodes/miners/etc... even recognize wallets or is it a construct we use for organizing the addresses like an account?
is there an API for communicating with the nodes? how does something actually get sent to the blockchain? simple post request/response over http? im lost here.
A wallet is in its simplest form just your priv key and some code to generate a transaction. With this privkey you can sign transactions, and send it to the network. For sure, today's wallets provide more functionality. But this is the basics. So you have a key store and some code. Miners or blockchain do not see, what wallet was used to generate a transaction. To integrate a tx in a block, the tx must follow specific rules with a layout of data, and the wallet software would help to do that. This question shows some missing knowledge on the basics of the network. Review the reading links  Wink
Yup, and then there is a "send" function to the network. In this forum there was once some code, I just don't remember the link...  Undecided
 
So please, re-edit your post a bit, correct some wording, read the docs, and start to code. Become a valuable member of the community, and share some of your developments. Hint: SegWit wallets are still rare :-)

A warm welcome to the community!
 
232  Bitcoin / Development & Technical Discussion / Re: How to decode a raw tx without having a full client? on: August 23, 2017, 08:07:53 PM
if you are on unixoide systems, then this is were I started. It is at the shell level: https://github.com/pebwindkraft/trx_cl_suite
233  Bitcoin / Development & Technical Discussion / Re: Bitcoin decompiler on: August 23, 2017, 08:02:52 PM
reference here: https://bitcoin.stackexchange.com/questions/58569/bitcoin-decompiler
234  Bitcoin / Development & Technical Discussion / Re: Blockchain development on: August 20, 2017, 07:22:41 PM
welcome - our world needs deveoppers in this space :-)

and probably read "the reference" book from Andreas - Mastering Bitcoin.
http://chimera.labs.oreilly.com/books/1234000001802/

I found it then especially helpful to go to bitcoin.stackexchange.com, where many developpers provide help.
Oh, and then there is the set of bitcoin 101 by James Di Angelo (I hope I spelled his name correctly).
And then, when you are "there", Ken Shirrif explaned very well transactions and blocks here: http://www.righto.com/2014/02/bitcoins-hard-way-using-raw-bitcoin.html
235  Bitcoin / Development & Technical Discussion / Re: Is it possible to generate address using defined text? on: August 06, 2017, 01:51:01 PM
...
In 58 times ?? Where such an exact number?

This is the character encoding (base58). The bitcoin alphabet has less chars than our normal alphabet, to avoid confusion between capital "o"s and zeros, or lower "L"s and "i". In some fonts they just look the same, and such a typing error could lead to a loss of your values.
236  Bitcoin / Development & Technical Discussion / Re: Why I Am Not Using Hardware Wallet For Cold Storage on: August 04, 2017, 06:21:16 AM
People discussing security when using Windows - come on! Don't you see the gap here? Windows has a long, long record of insecurity, and there is no sign, that this will ever stop. (Oh, yes - Microsoft last recently announced, they'll embrace Linux. That might be a first step.)

In the professional world of security you do not talk Windows. Otherwise it is snake oil (thx to Bruce Schneier for this wording).

>> Saying no procedure is 100% safe sounds like speculation to me.
this sentence makes me puzzled Huh
Security is not about emotions, not about opinions or speculation.
it is a race between experience and development. Similiar to banks, who protect the wealth. The layers of protection were increased step by step, until it gets too expensive to try and steal money. So security is all about trade-offs: you have a certain amount of value to protect, then you also need to invest a certain amount for the protection layer. You can not protect a 1 million value with 5 cents of security thoughts. And then there is not only security against theft, it is also about privacy.

So best practices might look a bit like this:
Trades at the 100 Dollars/Yen/Euros/Satoshis level can be on a phone wallet.
The 1000 range can start to be used with multisig.
The 10.000 range requires some cold storage.
All beyond requires cold storage and multisig.
And when it comes to privacy, you may want to add a layer of tumbler/coinjoin/mimblewimble.

237  Bitcoin / Development & Technical Discussion / Re: Transfer keys between USBs on: July 27, 2017, 07:37:10 AM
it depends - what else  Smiley
on the value you want to transfer. This has been discussed many many times, here in the forum and reddit, and Trace Mayer in his bitcoin podcasts repeats it every time - search for it   Wink

Generally:
for a couple of Euros/Pounds/Dollars (up to 100 maybe), it is ok to use a normal machine and wallet (or iPhone and Android). Similiar to your normal wallet for FIAT money. To then copy via USB, use a machine, that has been verified for malware.
When you have values in the 1000 Euros/Pounds/Dollars range, you pay more attention, and copy this stuff from a secure, unixoide (xBSD or Linux LIVE CD) air gapped machine.
At this point in time a cold storage wallet like Trezor or similiar has it's value.
When you have more than 10.000, then you need to spend some time into re-thinking your store of value. Trezor is not secure enough, cause we cannot see, what is "below" the device. Here you would need to have your cold storage setup along with multisig. Do it yourself, make it trusted, and reliably tested. There is no final solution.
Summary:
low value, little effort in securing your keys, high values, much effort securing your keys.
spend two dollars in security efforts for low bitcoin values, spend 1000 dollars for security when bitcoin values are above 10.000 Dollars, and yes, spend much more, when it's a million value. You are your own bank!
238  Bitcoin / Development & Technical Discussion / Re: macOS Sierra Bitcoin build and install; ACLOCAL_PATH and DYLD_LIBRARY_PATH on: July 27, 2017, 07:13:55 AM
thank you for sharing. The Mac community will like it  Smiley
I used the pre-compiled binaries (and verified the checksums). Seems like I'm a bit too lazy, next time ...
239  Bitcoin / Development & Technical Discussion / Re: Video/book/article about bitcoin technical structure on: July 01, 2017, 10:18:50 AM
Maybe A. Antonopolus "Mastering Bitcoin" - he describes very well the concept, and the book is available online in many languages.
You can connect to UDEMY, do some online courses on Linnux (yes!), networks (IPv4 and IPv6), crypto, and don't forget information security or "ethical hacking". And youtube has tons of video - I like D'Angelo videos ("bitcoin james d'angelo").
Hope this helps to get a start.
240  Bitcoin / Development & Technical Discussion / Re: Is developing your own Wallet safer? on: February 28, 2017, 08:12:51 AM
it is worthwhile! Really, don't get discouraged.
You learn alot about "how the system works". There is a testnet, that you can play with, so don't even need to fear loosing money while in early stage of dev.
You never know where you end up. Maybe one day you're in, and we have a new core dev :-)

Hint1: you can't make money with wallets

Question: what do you intend to do, and what language? I think this was not answered ...

encouraging you, rgds,
Volker
Pages: « 1 2 3 4 5 6 7 8 9 10 11 [12] 13 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!