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.

Reply via email to