Hi Brady, I'm wondering how your attempts went in forking the chain and building your program. Please give me an update if you see this because I am trying to learn as much as I can about blockchain technology so that I can build a Dapp on top of Ethereum. Thanks
-Joe On Wednesday, April 2, 2014 at 1:34:23 AM UTC-4, Brady Rose wrote: > > I've been looking though the twister/bitcoin c++ code for the past few > days considering forking it to creating a derivative web application. > > I've programmed a number of applications in c++ in the past but never > anything as complex as bitcoin in the past, so I am trying to get a better > feel for exactly what an undertaking it would take to modify twisters > source code, fortunately the application I have in mind won't have to be > very complicated and should only require limited changes to achieve the > primary objective. I know, im being kinda vague on what exactly I want to > do, but for not I've decided to not reveal my full plan until I've gotten a > bit further. For not I will just outline my main objectives in context to > twister. > > *Creating a new genesis block to create a new blockchain:* > > Its my understanding that in order to fork bitcoin, litecoin, or twister > one must create a genesis block by changing some settings in the code, > recompiling it, then taking some of the resulting output, putting it back > into the source and then recompiling that. Since twister includes litecoins > script mining I can only assume that forking twister is more similar to > forking litecoin than it is to forking bitcoin. I'm looking for commentary > on if creating a new blockchain for a forked twister is roughly the same as > forking litecoin or if there are some particularities that are unique to > twister that I need to familiarize myself with. I've been looking at this > thread here as a reference of things to change in the code : > http://bitcoin.stackexchange.com/questions/21303/creating-genesis-block > > In addition to that, before I get carried away actually creating a new > genesis block, I need to figure out if the fields I wish to store in the > blockchain need to be completely established BEFORE the new blockchain is > created. If this is the case it would seem shouldn't worry about creating > the new blockchain until I've worried about... > > > *Creating additional storage fields, and modifying the sizes of existing > fields:* > > OK, so my first objective is to change the size of the main message stored > to something bigger, as 140 characters just isn't big enough for what I am > thinking of, so my first concern is to modify the code to make it possible > so that instead of a message being 140 characters, to be something more on > the order of a page or two of text. In addition I would like to create > another field that can contain 2,000 characters. All in all for this > project I can't imagine any more than 5 kb data total among the possible > fields needed. I am though, beyond the scope of this particular product > interested in the practical limitations on how much data a transaction can > hold. > > I have identified certain areas of twister/bitcoin that I believe might > need to be changed to accommodate this. > > 1. Chain parameters > > > https://github.com/miguelfreitas/twister-core/blob/master/src/chainparams.cpp > > CTransaction txNew; > txNew.message = CScript() << string(pszTimestamp); > > txNew.userName = CScript() << string("nobody"); > // probably add a line like : > taxNew.Additional = CScript() << string("nothing for now"); > > > > https://github.com/miguelfreitas/twister-core/blob/master/src/main.h > > /** The maximum allowed size for a serialized block, in bytes (network rule) > */ > static const unsigned int MAX_BLOCK_SIZE = 50000; > /** The maximum size for mined blocks */ > > static const unsigned int MAX_BLOCK_SIZE_GEN = MAX_BLOCK_SIZE/2; > /** The maximum size for transactions we're willing to relay/mine */ > //static const unsigned int MAX_STANDARD_TX_SIZE = MAX_BLOCK_SIZE_GEN/5; > static const unsigned int MAX_STANDARD_TX_SIZE = (140+16+512+32); > //msg+user+key+spare > > /** The maximum size of a blk?????.dat file (since 0.8) */ > static const unsigned int MAX_BLOCKFILE_SIZE = 0x8000000; // 128 MiB > /** The pre-allocation chunk size for blk?????.dat files (since 0.8) */ > static const unsigned int BLOCKFILE_CHUNK_SIZE = 0x1000000; // 16 MiB > > /** The maximum size for spam messages */ > static const int MAX_SPAM_MSG_SIZE = 140; > /** The maximum size for username */ > static const unsigned int MAX_USERNAME_SIZE = 16; > > > > > > > 2. probably modify stuff to do with JSON so that the call that creates > the transaction so it can pass the additional variables > > > 3. Modify the actual functions that create the transaction > > > > I plan on making additional edits to this thread to document this process. > I'm sure it will be useful info for myself and others in the future. All > commentary or suggestions on how I can meet the objectives outlined would > be appreciated. > > > Brady. > > > -- You received this message because you are subscribed to the Google Groups "twister-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. For more options, visit https://groups.google.com/d/optout.
