Bitcoin Forum
April 25, 2024, 08:06:31 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 14 15 16 17 18 19 20 21 22 23 24 25 26 27 [28] 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 »
541  Economy / Speculation / Re: Gold collapsing. Bitcoin UP. on: July 17, 2012, 01:57:45 AM
I bought ~36 bitcoins today. The first amount. Providing I can send them to an address and it all goes well I'll continue with some more. I'm annoyed the price has gone up in the short amount of time I've been trying to buy them but what can I do? :-(

you already profited Smiley

542  Economy / Speculation / Re: Gold collapsing. Bitcoin UP. on: July 17, 2012, 01:48:38 AM
Wrong -> Bitcoin is UP? BUY BUY BUY!!! Bitcoin is more up? BUY BUY BUY! Bitcoin has crashed? Cover the losses. SELL SELL SELL.

Right -> Bitcoin is down? BUY BUY BUY!!! Bitcoin is more down? BUY BUY BUY! Bitcoin has skyrocketed? SELL SELL SELL.
543  Economy / Speculation / Re: Ladies and Gentleman, There goes $9 on: July 17, 2012, 01:45:24 AM
I predict $100 in the next three months and then $3 in the next four months. Tongue
544  Economy / Speculation / Re: Gold collapsing. Bitcoin UP. on: July 17, 2012, 01:42:16 AM
I bought ~36 bitcoins today. The first amount. Providing I can send them to an address and it all goes well I'll continue with some more. I'm annoyed the price has gone up in the short amount of time I've been trying to buy them but what can I do? :-(

you already profited Smiley

What the hell? Bitcoin going into bubble mode again?  Angry

Well should have put all my money in... I was just testing it out. I still want to buy in small amounts and send to many addresses. I'm trying to avoid losing all my money in some sort of security screw up. I don't trust any of the bitcoin exchanges. I trust any of them after what we've seen happen in the past.
545  Bitcoin / Development & Technical Discussion / Re: cbitcoin - Bitcoin implementation in C. Currently in development. on: July 17, 2012, 12:38:21 AM
I looked briefly at the bitcoin socket code. It didn't look very nice from what I saw and it was quite disorganised. It looked like the sockets were blocking as I saw a section which looped through reading received data.

Anyway I think I found the solution to setting IPv6 addresses:

Code:
bool CBSocketConnect(u_int64_t socketID,u_int8_t * IP,u_int16_t port){
// Create sockaddr_in6 information for a IPv6 address
struct sockaddr_in6 address;
memset(&address, 0, sizeof(address)); // Clear sockaddr_in6 structure.
address.sin6_family = AF_INET6; // IPv6
memmove(&address.sin6_addr, IP, 16); // Move IP address into place. POSIX standards should allow this.
address.sin6_port = htons(port); // Port number to network order
if (connect((evutil_socket_t)socketID, (struct sockaddr *)&address, sizeof(address)) != 0)
// Connection failure
return false;
return true;
}

Apparently that should work on POSIX compliant platforms. It is not tested yet and may fail on windows.

The reason the socketID is a u_int64_t is to support any integer that it may be for portability. In this implementation it is casting to evutil_socket_t which is a file descriptor on unix/linux and a pointer on windows.
546  Bitcoin / Development & Technical Discussion / Re: cbitcoin - Bitcoin implementation in C. Currently in development. on: July 16, 2012, 08:08:35 PM
Sockets are driving me mad. Different platforms use completely different ways to represent IPv6 addresses. This includes unix platforms which do not use fully compatible BSD sockets.

So if anyone knows a portable way to connect to IPv6 addresses please look here: http://stackoverflow.com/questions/11511339/portable-ipv6-connections-with-bsd-posix-sockets

Edit: I just sent 35.95515 bitcoins to an address made with cbitcoin. The first practical use of cbitcoin!
547  Economy / Speculation / Re: Gold collapsing. Bitcoin UP. on: July 16, 2012, 06:37:37 PM
I bought ~36 bitcoins today. The first amount. Providing I can send them to an address and it all goes well I'll continue with some more. I'm annoyed the price has gone up in the short amount of time I've been trying to buy them but what can I do? :-(
548  Other / Off-topic / Re: good wife episode now available in uk on: July 16, 2012, 12:25:52 AM
http://www.channel4.com/programmes/the-good-wife/episode-guide/series-3/episode-13

I'm in the UK and it says it's not available on 4oD.

I watched it on one of those free TV websites.
549  Bitcoin / Development & Technical Discussion / Re: cbitcoin - Bitcoin implementation in C. Currently in development. on: July 15, 2012, 11:18:13 PM
I've figured out how cbitcoin will handle sockets. cbitcoin will have dependencies for events-based, non-blocking sockets. It should work with libevent though I need to learn more about how to use lubevent to make sure my library is compatible. My threading dependencies should work with POSIX threads nicely.

Here are the threading and socket dependencies as I have them so far (These are weakly linked function prototypes):

Code:
// THREADING DEPENDENCIES

/*
 @brief Starts a new thread. The thread should be joinable.
 @param threadID The ID for the thread to be set with newly allocated memory, used to refer to the threads in other functions.
 @param startFunction The function to be called as the starting point of the new thread.
 @param args A pointer to the arguments for the starting function.
 @returns true if the thread was successfully created and false if the thread could not be created.
 */
bool CBStartThread(void * threadID,void * (*startFunction)(void *),void * args);
/*
 @brief Ends the calling thread.
 */
void CBEndThread(void);
/*
 @brief Waits for a thread to terminate.
 @param threadID The ID for the thread.
 */
void CBThreadJoin(void * threadID);
/*
 @brief Frees any resources related to a thread, including the ID.
 @param threadID The ID for the thread.
 */
void CBFreeThread(void * threadID);
/*
 @brief Creates a new mutex.
 @param mutexID The mutex id to be set with newly allocated new memory.
 @returns true if the mutex was successfully created and false if the mutex could not be created.
 */
bool CBNewMutex(void * mutexID);
/*
 @brief Frees a new mutex including the ID. It is assured that no thread locks are active before this is called as threads should be canceled.
 @param mutexID The mutex id to free.
 */
void CBFreeMutex(void * mutexID);
/*
 @brief Obtains a mutex lock when next available.
 @param mutexID The mutex id.
 */
void CBMutexLock(void * mutexID);
/*
 @brief Unlocks a mutex for other threads.
 @param mutexID The mutex id.
 */
void CBMutexUnlock(void * mutexID);

// NETWORKING DEPENDENCIES

/*
 @brief Creates a new TCP/IPv6 socket and binds it to the given IPv6 address and port. The socket should use a non-blocking mode.
 @param socketID The socket id to be set with newly allocated new memory.
 @returns true if the socket was successfully created and false if the socket could not be created.
 */
bool CBNewSocket(void * socketID);
/*
 @brief Binds the local address and a port number to a socket.
 @param socketID The socket id
 @param port The port to bind to.
 @returns true if the bind was sucessful and false otherwise.
 */
bool CBSocketBind(void * socketID,u_int16_t port);
/*
 @brief Begin connecting to an external host with a socket. This should be non-blocking.
 @param socketID The socket id
 @param IP 16 bytes for an IPv6 address to connect to.
 @param port Port to connect to.
 @param onConnect Pointer to the function that should be called when the connection has been sucessful.
 @param onConnectArg Pointer to send to "onConnect".
 @returns true if the function was sucessful and false otherwise.
 */
bool CBSocketConnect(void * socketID,u_int8_t * IP,u_int16_t port,void (*onConnect)(void *),void * onConnectArg);
/*
 @brief Begin listening for incomming connections on a bound socket. This should be non-blocking.
 @param socketID The socket id
 @param maxConnections The maximum incomming connections to allow.
 @param onAccept Pointer to the function that should be called when the socket is ready for accepting an incomming connection.
 @param onAcceptArg Pointer to send to "onAccept".
 @returns true if function was sucessful and false otherwise.
 */
bool CBSocketListen(void * socketID,u_int16_t maxConnections,void (*onAccept)(void *),void * onAcceptArg);
/*
 @brief Accepts an incomming connections on a bound socket. This should be non-blocking.
 @param socketID The socket id
 @param connectionSocketID A socket id for a new socket for the connection.
 @param IP 16 bytes to be set by the function for the IP of the incomming connection.
 @returns true if function was sucessful and false otherwise.
 */
bool CBSocketAccept(void * socketID,void * connectionSocketID,u_int8_t * IP);
/*
 @brief Sets a function pointer for the event where a socket is available for sending data.
 @param socketID The socket id
 @param onCanSend The function to call for the event.
 @param onCanSendArg A pointer to pass to the "onCanWrite" function.
 @returns true if function was sucessful and false otherwise.
 */
bool CBSocketCanSendEvent(void * socketID,void (*onCanSend)(void *),void * onCanSendArg);
/*
 @brief Sets a function pointer for the event where a socket is available for receiving data.
 @param socketID The socket id
 @param onCanReceive The function to call for the event.
 @param onCanWriteArg A pointer to pass to the "onCanWrite" function.
 @returns true if function was sucessful and false otherwise.
 */
bool CBSocketCanReceiveEvent(void * socketID,void (*onCanReceive)(void *),void * onCanReceiveArg);
/*
 @brief Sends data to a socket. This should be non-blocking.
 @param socketID The socket id to send to.
 @param data The data bytes to send.
 @param len The length of the data to send.
 @returns The number of bytes actually sent and any number less than 0 on failure that suggests further data cannot be sent.
 */
int32_t CBSocketSend(void * socketID,u_int8_t * data,u_int32_t len);
/*
 @brief Receives data from a socket. This should be non-blocking.
 @param socketID The socket id to receive data from.
 @param data The data bytes to write the data to.
 @param len The length of the data.
 @returns The number of bytes actually written into "data", 0 on connection closure and any number less than 0 on failure.
 */
int32_t CBSocketReceive(void * socketID,u_int8_t * data,u_int32_t len);
/*
 @brief Closes a socket. The id should be freed, as well as any other data relating to this socket.
 @param socketID The socket id to be closed.
 */
void CBCloseSocket(void * socketID);
550  Bitcoin / Bitcoin Discussion / Re: Virtual Country. on: July 15, 2012, 03:01:09 PM
What you were talking about in the first post wasn't really a virtual country, just "smart contracts" and a form of arbitration. Though I wasn't really following.
551  Bitcoin / Bitcoin Discussion / Re: Virtual Country. on: July 15, 2012, 02:39:14 PM
So basically make a new second life but with bitcoins instead of linden dollars?
552  Bitcoin / Bitcoin Discussion / Re: Should a bitcoinica clone be put online ? on: July 14, 2012, 07:32:48 PM
Aren't copyright notices required or else information is in the public domain? If there are no notices then from my limited knowledge I would guess it was in the public domain legally.

According to US law...

Q. Do I have to register with your office to be protected?
A. No. In general, registration is voluntary. Copyright exists from the moment the work is created. You will have to register, however, if you wish to bring a lawsuit for infringement of a U.S. work. See Circular 1, Copyright Basics, section “Copyright Registration.”

From http://www.copyright.gov/help/faq/faq-general.html



Placing a copyright notice is not the same as registration. I found this for US law:

Quote
A copyright notice is an identifier placed on copies of the work to inform the world of copyright ownership. The copyright notice generally consists of the symbol or word “copyright (or copr.),” the name of the copyright owner, and the year of first publication, e.g., ©2008 John Doe. While use of a copyright notice was once required as a condition of copyright protection, it is now optional. Use of the notice is the responsibility of the copyright owner and does not require advance permission from, or registration with, the Copyright Office. See Circular 3, Copyright Notice, for requirements for works published before March 1, 1989, and for more information on the form and position of the copyright notice.

http://www.copyright.gov/help/faq/faq-definitions.html

UK law: http://www.copyrightservice.co.uk/copyright/p03_copyright_notices

Quote
There is no legal requirement to include a copyright notice. Whether a notice is used or not will not change the fact that copyright exists in the work. It is however strongly recommended that you include one on your work if all all possible to deter copyright infringement.
The aim of copyright notice is to:
Make it clear that the work is subject to copyright.
Provide a means of identifying the copyright owner.
Deter infringement or plagiarism.

So I was wrong but it had nothing to do with registration.
553  Bitcoin / Bitcoin Discussion / Re: Should a bitcoinica clone be put online ? on: July 14, 2012, 07:16:02 PM
Aren't copyright notices required or else information is in the public domain? If there are no notices then from my limited knowledge I would guess it was in the public domain legally.
554  Other / Politics & Society / Re: How I see politics. on: July 14, 2012, 06:11:22 PM
You don't mean A...?
555  Other / Politics & Society / Re: How I see politics. on: July 14, 2012, 06:02:22 PM
"Make the best of a bad situation"

But that doesn't mean "don't resist". Resist by all means.
556  Bitcoin / Development & Technical Discussion / Re: cbitcoin - Bitcoin implementation in C. Currently in development. on: July 13, 2012, 06:55:34 PM
I've implemented all the message objects except the IP transaction ones which I wont implement. The message objects need testing for the cases in which they are supposed to fail and need to be scrutinised.

However, for now, I'm going to work on the code for the network. This will be the code that can send messages back and forth to and from the network and also some code that automates some common processes such as relaying network addresses and finding new nodes etc. I'm thinking I'll make a structure called CBNetworkCommunicator that works on a events based system:

eg. With "void (* onBlockRecieved)(CBNetworkCommunicator *,CBNetworkAddress *,CBBlock *)" a block is de-serialised from the network and sent to the function pointed to by onBlockRecieved with the CBNetworkCommunicator object and CBNetworkAddress where the block was sent from.

I will need to add networking and threading functions to CBDependencies.h for connecting to nodes and managing connections in separate threads.

After this I'll implement the block validation. I'll add functions to CBBlock.h/.c for this and use an CBEvents object so the validation code can ask other functions for block/transaction information (eg. "CBTransactionOutput * (* getPrevOutput)(CBByteArray * transactionHash,u_int32_t outputIndex)"). The programmer using the library will be responsible for the storage of blocks and retrieving the information for the validator. The programmer will also be responsible for the organisation of the block chain, cbitcoin will only validate single blocks at a time. cbitcoin should have code for the checking of block difficulty, timestamps etc. but the programmer using cbitcoin may have to pass some of this information around. This is because of the configurable/modular nature of cbitcoin (Remember that cbitcoin is supposed to be relatively low-level).

Shortly after that I should be able to put cbitcoin into the alpha development stage and I will move onto the higher level client library and applications for that (More info later). Developing a client library on top of cbitcoin may highlight issues, so I will begin proper testing after developing the client library. Both libraries and the client applications can be tested together and will eventually enter the beta testing stage. This stage has a focus on public testing but people will be free to help test the code during the alpha stage too. Eventually the code will be considered secure and stable for final release.

I've been looking a little into independent software reviews. It seems most software is tested internally and there is little interest in external auditing of software. I have the feeling that's because it would be very expensive. Does anyone know much about external auditing of software?
557  Economy / Speculation / Re: Gold collapsing. Bitcoin UP. on: July 12, 2012, 06:59:50 PM
I was going to transfer some money for bitcoins last week but I got ill. Sucks considering the price has gone up. I guess I'll buy some and then buy more later in small amounts each time.

Anyway what has the point of this thread become?
558  Other / Politics & Society / What Does the Mirror of Democracy Reflect? - The UK Libertarian. on: July 10, 2012, 11:13:22 PM
I published this article today. Is democracy "the orignal 51% attack" (evoorhees) or something else?

http://theuklibertarian.com/2012/07/10/what-does-the-mirror-of-democracy-reflect/

Quote
Many people will often uphold democracy as true freedom. They will say democracy is representative of “the people”, that it is for “the people” and that it reflects the needs of “the people”. Some “libertarians”, who disagree, may say that democracy is 51% or more of the population against 49% or less of the population. These “libertarians” suggest the view that democracy reflects the majority but is against the minority. Perhaps both views are incorrect in the understanding of democracy. What does the mirror of democracy really reflect?
Firstly in a representative democracy, candidates for political positions win if they get more votes than any other candidate. This is not necessarily a majority of the votes because, for instance, A, the winner, could only get 40% of the vote while B and C get 30% each. Everyone that voted for another candidate did not receive the politician they voted for.
Secondly the elected legislators only have a vote in passing laws, and often the laws will be passed against any given politician’s particular preference on the issue. Political parties often pool together votes so that people can vote for the political parties they want as opposed to individuals. They hope that, if their party is elected, the party will have control over the legislature and perhaps executive/cabinet positions. People do not realise this acts to further limit the choice from individual politicians down to fewer parties. With first past the post systems, an elected politician may not have any real power at all which excludes entire groups of voters.
Thirdly, your vote is individually worthless and makes no difference. Any party could be voted in and you have no direct control over that through a single vote. Never in history has a single vote made a difference. If you think voting is “making your voice heard”, think again.
Fourthly, when you wish for your life decisions to be delegated to a politician, you are giving up individual sovereignty. Democracy does not give you freedom, it takes it away. A slave that votes for masters is still a slave. You can only vote for who you think will make the decisions that will best effect yourself. People will often vote in an attempt to receive privileges granted by the removal of other people’s freedoms. In the end everyone loses their freedom. Democracy isn’t the majority against the minority, it’s everybody against everybody.
People actually do think that delegating their life away is beneficial. The politicians that get into power are the ones that are the most successful at convincing people that the people’s lives are best run at the hands of those politicians. Hence those in government are good at lies, propaganda and seduction. Those that worship democracy say that government is a reflection of the people. I say democracy is a reflection of the stupidity of people; the stupidity to buy into the propaganda instead of thinking for one’s self.
It amazes me that people ignore the obvious example of the Nazis. The Nazis used propaganda very effectively to seduce the German’s into giving them power. The propaganda used by the Nazi’s included a sense of national pride and fear-mongering that you can see in modern day propaganda. The Nazi’s kept many parts of the ideology secret and moved more and more evil into the German’s lives over time. It demonstrates if you tolerate the small things, bigger evils are sure to follow, by which time it is too late.
Always remember that the Hitler rose to power in a democratic system!
People often say “but only the Germans were that stupid”. Nope, I say democracy is a reflection of the stupidity of the majority of people and it doesn’t matter where those people reside. Take a look into the mirror and then shatter it; shatter the idea of democracy.
Author: Matthew Mitchell
matthewmitchell@thelibertyportal.com
559  Bitcoin / Development & Technical Discussion / Re: BIP 34 : block height in the coinbase on: July 10, 2012, 08:58:09 PM
OK gmaxwell. What you say makes reasonable sense to me.
560  Bitcoin / Development & Technical Discussion / Re: BIP 34 : block height in the coinbase on: July 10, 2012, 08:29:53 PM
So this is to fix duplicate coinbase transactions potentially causing two coinbase transactions becoming invalid?

Why doesn't the client just identify transactions by a mixture of the transaction hash and the parent block (Hence removing the bug with no need for a hack) and why not get the majority of miners to reject blocks with duplicate coinbases to prevent a blockchain fork?
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 [28] 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!