Bitcoin Forum

Bitcoin => Project Development => Topic started by: CIYAM on May 07, 2014, 09:50:55 AM



Title: CIYAM - Project Plan Outline and Progress Updates
Post by: CIYAM on May 07, 2014, 09:50:55 AM
CIYAM Project Plan

Now that the CIYAM project has had over 1,000 commits on github (https://github.com/ciyam/ciyam) and that our small but dedicated team (of mostly unpaid contributors) is coming together it seems appropriate that we list the main goals and task areas that we will be persuing throughout the year.

Major Goal

Our major goal is to create nothing less than a new kind of decentralised internet via a development platform that uses Software Manufacturing to allow people to easily create new blockchains and blockchain applications (without even requiring application creators to write source code).

No Coin Or IPO

It should be clearly noted that unlike most other such projects we are not going to be creating a currency at all (but we are creating a Token package that will support trustless transfers of ownership between parties).

There will also be no IPO - any funds raised will be via crowdfunding (with the use of the Crowdfund AT which we designed and created).

History And Direction

This project originated from a commercial software system which is still being used today and has been worked on since as early as 2001 (although full-time work on it only began in 2006). It was open sourced in 2012 and at that stage was still intended for the creation of traditional 3-tier DB applications (such as "CIYAM Open" which is an application that was 100% generated).

In 2014 work began on changing the platform to be suitable for working with a blockchain. A Wallet package to be able to work with Bitcoin and clones was also developed with the idea that this platform will allow people to create applications such as virtual currency exchanges over a P2P network secured by a new low-energy kind of "proof" system (that is unlike any existing approach).

Current Progress

The Software Manufacturing concept has been tried and very well tested so although some refinements will need to be made overall this area of the project has been pretty much completed.

The new proof concept has already been analysed by a qualified math expert (a white paper containing the math analysis of the approach will be published) and the basic algorithm to implement it has been devised.

A "file system" that is very similar to that used for "git" has been developed which will act as the backbone for the P2P network to operate (so file sharing is a key part of the design also).

The blockchain implementation is well underway although it will require quite a bit more work to be completed as will the peer implementation.

The Token package is nearing completion but some rework of the existing packages will be required in order to make them suitable for use in a blockchain environment.

Main Task Areas

Blockchain - the new proof algorithm implementation needs to be completed and then a lot of testing is needed to ensure it functions as expected.

IDE - some further work on the integrated development environment will be needed to make it easy to construct blockchains and blockchain applications.

Applications - It is hoped that when we go "live" we will be able to present something that looks pretty much identical to http://ciyam.org/open so this will require some rework of several existing packages that are not currently suitable for blockchain usage.

Deployment - the CIYAM Server VM based upon Open SUSE has been created for this purpose but further work will need to be done to ensure it is very simple to set up a node (and some research into how the development with VM technology is going with Android and other OS systems).

Marketing - we have basically no funding for this so at this stage we will be slowly raising our profile with the help of our Automated Transactions (AT) creation.


Title: Re: CIYAM
Post by: jantenner81 on May 07, 2014, 09:59:26 AM
Really nice to see rebranding in progress...


Title: Re: CIYAM
Post by: CIYAM on May 08, 2014, 06:16:41 AM
One thing that CIYAM now needs *is a voice* so anyone who has recording or interview experience who is interested should make an audio recording of themselves reading this text and send me a link via PM to it for consideration.


Title: Re: CIYAM - now recruiting
Post by: CIYAM on May 08, 2014, 06:18:24 AM
Another thing we need is an experienced C++ programmer - anyone who thinks that they might be suitable please contact me via PM.


Title: Re: CIYAM - now recruiting
Post by: jantenner81 on May 08, 2014, 08:51:59 AM
CIYAM is one of the most revolutionary ideas I've seen in the Bitcoin space and I'd highly recommend checking it out.

indeed - you should check this more deeply


Title: Re: CIYAM - now recruiting
Post by: CIYAM on May 29, 2014, 04:51:35 AM
We are pleased to announce that Jan Tenner has joined forces as our marketing and graphic design specialist.

Also please note that CIYAM Open projects can now be in LTC or NXT as well as BTC (and others can be easily added).


Title: Re: CIYAM - now recruiting
Post by: allwelder on May 30, 2014, 11:05:31 AM
great,re-brand.


Title: Re: CIYAM - now recruiting
Post by: genjix on May 30, 2014, 11:58:19 AM
what is it? 2 years of dev, & lots of work
any description somewhere? docs .etc
how does it work with bitcoin and what problem are you trying to solve?


Title: Re: CIYAM - now recruiting
Post by: gondel on May 30, 2014, 12:20:45 PM
If you are looking for translator from English to Spanish and French i can help :)
Also can help with marketing ( i have some experience)
BR


Title: Re: CIYAM - now recruiting
Post by: CIYAM on May 30, 2014, 01:42:17 PM
what is it? 2 years of dev, & lots of work
any description somewhere? docs .etc

Some basic documentation can be found here: http://ciyam.org/docs - in particular read the introduction to "software manufacturing".

how does it work with bitcoin and what problem are you trying to solve?

CIYAM Open (http://ciyam.org/open) is an example of what can be created with CIYAM - believe it or not that application was constructed in around 5 minutes using a Galaxy S3 Tab computer.

It is a project management tool for getting tasks done for Bitcoin (and now supports other cryptos such as Litecoin and NXT) - there is going to be a lot more going on with this platform soon but for now I am keeping that "under wraps".


Title: Re: CIYAM - now recruiting
Post by: CIYAM on October 04, 2014, 02:52:34 PM
A long time between posts (sorry) but there is some exciting news.

Firstly I have now worked out how to do "bitcoin raw txs" *without* using bitcoind (took a while to get it right but at least the "normal" kind of tx is now working fine - things like "multisig" will need to be added later).

I am currently working on a Wallet package for CIYAM that will allow for many different kinds of wallets (including those for *alts*) and that work is now progressing well (it may take another week to complete).

I have also developed a "new kind of proof" for a blockchain (called "proof of hash" which uses the principle of a "hash chain").

(mods - please note that CIYAM is not *becoming an alt* even if and when it has its own blockchain as it has been designed primary to work with Bitcoin)


Title: Re: CIYAM - now recruiting
Post by: CIYAM on October 13, 2014, 02:47:22 PM
To update - the Wallet package is progressing well but unfortunately a few external issues had meant it'll take a little longer (I think by the end of this week).

Some of you may be aware of my invention called Automated Transactions (http://ciyam.org/at) and have heard that it is very soon going to be making some live appearances in the crypto currency scene (something that I'm sure will take Ethereum by surprise).

Just to make things clear - although I helped with the development of the Nxt version of AT I am no longer associated (nor hold any *assets* or *funding*) from that project.


Title: Re: CIYAM - now recruiting
Post by: CIYAM on October 17, 2014, 04:01:24 PM
To update - the Wallet package (and related Transaction package) changes have now been committed.

I still need to do a bunch of testing but the CIYAM Wallet is now very close to being "ready for use".

Also you may have read about the CIYAM AT project bounty (https://bitcointalk.org/index.php?topic=826263.0) - I am being contacted by several interested parties about implementing AT on other blockchains so this should be one exciting area to follow.

It is looking very likely that the *very first* atomic cross-chain transfer/transaction between two different blockchains (mainnet) could happen before the end of this year!


Title: Re: CIYAM - now recruiting
Post by: vbcs on October 19, 2014, 02:05:03 PM
CIYAM is going to be HUGE can't wait for it.

Regarding the AT, as we are running an experimental testnet at the moment, maybe we could run one more testnet and try the use case of atomic cross chain tx's.


Title: Re: CIYAM - now recruiting
Post by: CIYAM on October 21, 2014, 01:48:14 PM
I think to make things clearer about what CIYAM is I need to perhaps draw a comparison with *gong fu* (martial arts).

When I set out to create CIYAM I had the goal of being ten times more productive than most other devs - already I have well surpassed that goal (e.g. the CIYAM Open website was created in around 5 minutes and that was done using a Galaxy S3).

So now that I have achieved more than 10x normal productivity levels I have been working on achieving 100x normal productivity levels (and am getting close to that).

Basically CIYAM is a *gong fu* for software engineers - it is a discipline and a skill set that takes a lot of effort to attain but can make the individual more powerful than most teams are.


Title: Re: CIYAM - now recruiting
Post by: CIYAM on December 29, 2014, 02:23:14 PM
Firstly season's greetings for those following this topic and secondly to reassure everyone that things are happening (to view progress it is probably best to follow the git commits as those happen a lot more than posts here do).

The basic Wallet package has been completed (and includes "type 1" deterministic wallets).

Congratulations to Burst for being the first blockchain to adopt the AT technology that was invented by CIYAM and it is expected that Qora will soon follow suit (meaning that the first atomic cross-chain transfer from two different mainnet blockchains will occur most likely very early in the new year).

The new consensus method that CIYAM is working on is currently under mathematical analysis and assuming all goes well there will be some major announcements to come in the next few months.


Title: Re: CIYAM - now recruiting
Post by: CIYAM on January 09, 2015, 03:50:23 PM
A sneak preview of the CIYAM OS can be found here: https://susestudio.com/a/kp8B3G/ciyam-server

There is work underway to create a "tinycore" version of the OS (that will only require 256 MB of RAM) and some new scripts have been added to make it quite simple to set up the VM so that you can work on creating CIYAM apps.


Title: Re: CIYAM - now recruiting
Post by: tobeaj2meraa on January 18, 2015, 01:08:22 PM
Man, you did a great work, CIYAM will be huge.


Title: Re: CIYAM - now recruiting
Post by: CIYAM on January 18, 2015, 07:24:43 PM
Work is also well underway on a Token package for CIYAM that is designed to allow franchises (the market I am most looking at) to use blockchain technology to replace existing ways of doing "vouchers" as well as creating a new market that will fit into the idea of "atomic cross-chain transfers".


Title: Re: CIYAM - now recruiting
Post by: CIYAM on January 30, 2015, 04:45:41 PM
Phew - after a pretty much non-stop 12 hour stretch today the Token package is just about ready to be committed (some minor look and feel improvements and final testing still to go).

Tokens can be either "redeemable" or "non-redeemable" (the latter just being useful as a limited supply of crypto secured items that can be transferred).

You can place an Offer to sell a token (equivalent to an "ask" in trading) or a Request to buy a token (equivalent to a "bid" in trading) and these are matched automatically.

Transferring requires entering a secret that matches a secret hash that is tied to the request or token itself (the latter is for redeeming).

This makes the tokens perfect for use with ACCT (atomic cross-chain transfer) which the AT project is hoping to achieve soon.


Title: Re: CIYAM - now recruiting
Post by: brock33 on February 02, 2015, 04:15:11 AM
This is all very fascinating. Just trying to get my mind around the basic concept right now. Project Management software is a good idea, but it depends on what features are included and if people that are used to MS Project and other mainstream software - would make the transition.

Going to follow this post...........


Title: Re: CIYAM - now recruiting
Post by: CIYAM on February 02, 2015, 04:49:26 AM
The key thing that we are focusing on is the development of a platform that makes it very simple to create decentralised applications (through the use of Software Manufacturing).

I don't expect that everyone is going to jump into using decentralised applications for a while but preparing a number of "packages" to do things like handling a Blog, Forum and Project Management should make the transition easier IMO.


Title: Re: CIYAM - Project Plan Outline
Post by: CIYAM on February 12, 2015, 11:16:24 AM
The OP has now been updated to the following:

CIYAM Project Plan

Now that the CIYAM project has had over 1,000 commits on github (https://github.com/ciyam/ciyam) and that our small but dedicated team (of mostly unpaid contributors) is coming together it seems appropriate that we list the main goals and task areas that we will be persuing throughout the year.

Major Goal

Our major goal is to create nothing less than a new kind of decentralised internet via a development platform that uses Software Manufacturing to allow people to easily create new blockchains and blockchain applications (without even requiring application creators to write source code).

No Coin Or IPO

It should be clearly noted that unlike most other such projects we are not going to be creating a currency at all (but we are creating a Token package that will support trustless transfers of ownership between parties).

There will also be no IPO - any funds raised will be via crowdfunding (with the use of the Crowdfund AT which we designed and created).

History And Direction

This project originated from a commercial software system which is still being used today and has been worked on since as early as 2001 (although full-time work on it only began in 2006). It was open sourced in 2012 and at that stage was still intended for the creation of traditional 3-tier DB applications (such as "CIYAM Open" which is an application that was 100% generated).

In 2014 work began on changing the platform to be suitable for working with a blockchain. A Wallet package to be able to work with Bitcoin and clones was also developed with the idea that this platform will allow people to create applications such as virtual currency exchanges over a P2P network secured by a new low-energy kind of "proof" system (that is unlike any existing approach).

Current Progress

The Software Manufacturing concept has been tried and very well tested so although some refinements will need to be made overall this area of the project has been pretty much completed.

The new proof concept has already been analysed by a qualified math expert (a white paper containing the math analysis of the approach will be published) and the basic algorithm to implement it has been devised.

A "file system" that is very similar to that used for "git" has been developed which will act as the backbone for the P2P network to operate (so file sharing is a key part of the design also).

The blockchain implementation is well underway although it will require quite a bit more work to be completed as will the peer implementation.

The Token package is nearing completion but some rework of the existing packages will be required in order to make them suitable for use in a blockchain environment.

Main Task Areas

Blockchain - the new proof algorithm implementation needs to be completed and then a lot of testing is needed to ensure it functions as expected.

IDE - some further work on the integrated development environment will be needed to make it easy to construct blockchains and blockchain applications.

Applications - It is hoped that when we go "live" we will be able to present something that looks pretty much identical to http://ciyam.org/open so this will require some rework of several existing packages that are not currently suitable for blockchain usage.

Deployment - the CIYAM Server VM based upon Open SUSE has been created for this purpose but further work will need to be done to ensure it is very simple to set up a node (and some research into how the development with VM technology is going with Android and other OS systems).

Marketing - we have basically no funding for this so at this stage we will be slowly raising our profile with the help of our Automated Transactions (AT) creation.


Title: Re: CIYAM - Project Plan Outline
Post by: mmmaybe on February 12, 2015, 12:01:02 PM
Great to see the constant progress of CIYAM  :) Burst will do its best with ATs!


Title: Re: CIYAM - Project Plan Outline
Post by: CIYAM on February 13, 2015, 01:04:49 PM
To get an idea about what Software Manufacturing is: http://ciyam.org/docs/methodology.html is an introduction to the concept (which I am fairly sure is going to change the way that software is created in the future).

To find out about how Software Manufacturing came into existence: http://ciyam.org/open/?cmd=view&data=20121221010507352000_P&ident=M100V112&chksum=b3d538bf (it isn't as long as most of Gavin or Vitalik's blog entries and does have pics).

Anyone interested to understand a bit more of the "nuts and bolts" might also be interested to read this: http://ciyam.org/open/?cmd=view&data=20150210150346737000&ident=M100V120&chksum=ecd893c2 (which shows how one of the main tools used to do Software Manufacturing works).


Title: Re: CIYAM - Project Plan Outline
Post by: CIYAM on February 14, 2015, 06:26:03 AM
Unfortunately Jan Tenner has moved on to do work for blockchain.info but luckily before he left he created our new logo (which I've put at the top of the OP).

http://ciyam.org/logo-gradient-128.png

The CIYAM Developers would like to thank him for his contribution.


Title: Re: CIYAM - Project Plan Outline
Post by: mmmaybe on February 14, 2015, 06:38:25 AM
To get an idea about what Software Manufacturing is: http://ciyam.org/docs/methodology.html is an introduction to the concept (which I am fairly sure is going to change the way that software is created in the future).

To find out about how Software Manufacturing came into existence: http://ciyam.org/open/?cmd=view&data=20121221010507352000_P&ident=M100V112&chksum=b3d538bf (it isn't as long as most of Gavin or Vitalik's blog entries and does have pics).

Anyone interested to understand a bit more of the "nuts and bolts" might also be interested to read this: http://ciyam.org/open/?cmd=view&data=20150210150346737000&ident=M100V120&chksum=ecd893c2 (which shows how one of the main tools used to do Software Manufacturing works).


Thanks for the links, only read the first one so the others will be fun to attend :)


Title: Re: CIYAM - Project Plan Outline
Post by: CIYAM on February 15, 2015, 12:48:38 PM
For anyone who is keen to do some "early testing" of the CIYAM system a VM can be downloaded here: https://susestudio.com/a/kp8B3G/ciyam-server (it should be noted that this version of CIYAM is not a blockchain system so is only useful for learning about how to use the IDE and build apps via Software Manufacturing).

Once you have installed the VM you can log in as "root" with password "linux" then type: ./setup

(it will update the OS and grab the latest version of CIYAM from github and then build and install it as well as set up apache2 to work with it)


Title: Re: CIYAM - Project Plan Outline
Post by: excword on February 15, 2015, 05:19:33 PM
Will try!


Title: Re: CIYAM - Project Plan Outline
Post by: CIYAM on February 15, 2015, 05:24:59 PM
Will try!

If you are keen to play then I will help you to create your first app (you can PM me for Skype contact if you like).

If you are not familiar with VMs then you might find the VMPlayer from SUSE to be a helpful tool (but we haven't created instructions for using that yet sorry) - I myself use libvirt (and I use it with only a console) so I might not be the best to help when using GUI VM managers (@vbcs has more experience with that).


Title: Re: CIYAM - Project Plan Outline
Post by: CloakT on February 15, 2015, 06:03:56 PM
Unfortunately Jan Tenner has moved on to do work for blockchain.info but luckily before he left he created our new logo (which I've put at the top of the OP).

http://ciyam.org/logo-gradient-128.png

The CIYAM Developers would like to thank him for his contribution.

Is Ciyam looking for a new designer?


Title: Re: CIYAM - Project Plan Outline
Post by: CIYAM on February 15, 2015, 06:07:22 PM
Is Ciyam looking for a new designer?

Yes but at this stage there is no budget for that (perhaps check again in a few months).


Title: Re: CIYAM - Project Plan Outline
Post by: CIYAM on February 20, 2015, 05:01:04 PM
One thing that I have perhaps neglected to spend much time promoting is the CIYAM Safe (https://susestudio.com/a/kp8B3G/ciyam-safe) which is a 100% air-gapped (using QR codes and cams) method of signing Bitcoin txs *offline* (if the exchanges that were recently hacked had of been using that then they should still have their cold wallet funds safely stored).

It combines Bitcoin with GPG (along with Scrypt for password hardening) to provide arguably the safest offline storage system for Bitcoin.

Unlike Armory and other "wallets" it doesn't try to be super user friendly or handle txs with a large number of UTXO's but instead focuses on the concept that when you have cold storage you are really "locking up" Bitcoin in specific amounts (say 10 BTC per address) for later retrieval (it was used to hold 250 BTC on behalf of this forum for around a year).

It has been used by CIYAM Open since 2012 and no BTC has gone missing using it.

If you used it with a Faraday cage that allows for cams (and that tech does exist) then you have zero concern of things like NSA injected firmware attacks (recently shown to be an issue with HDDs from many leading manufacturers). Although no-one has shown whether the same sort of attacks can be done with USB I think anyone storing a large amount of BTC offline might want to consider the benefit of using QR comms vs. trusting that their USB device isn't going to end up causing them to lose their offline BTC.


Title: Re: CIYAM - Project Plan Outline
Post by: CIYAM on March 01, 2015, 02:57:33 PM
An update just to say that the blockchain code is progressing well (you can check https://github.com/ciyam/ciyam/commits/master to keep a track of what is being developed).

Automatic "checkpoints" are a key feature now and blockchain rewinds (back as far as the last checkpoint) are now working (these are needed to reorganise a blockchain in the case of nefarious block minting).

Also the ability to "prune" old checkpoint blocks and transactions means that a CIYAM blockchain will always be compact.


Title: Re: CIYAM - Project Plan Outline
Post by: tobeaj2mer01 on March 05, 2015, 01:19:18 PM
I am always keeping an eye on this project.


Title: Re: CIYAM - Project Plan Outline
Post by: CIYAM on March 06, 2015, 04:01:40 PM
Unfortunately I had to move ciyam.org (and would not recommend anyone to use bitronictech.net for VPS hosting).

The new IP address for ciyam.org is: 212.71.247.214

It is now being hosted on a Linode (in the UK) which I think should be much more reliable (also the RapidSSL cert had expired but I fixed that today after moving over to Linode).

If anyone else is facing the same sort of clusterfuck problem with their VPS that I had (server constantly going down, emails being IP rejected due to spammers using their service and no reminders to renew essential items such as SSL certs) you should check out this: https://www.linode.com/docs/migrate-to-linode/disk-images/migrating-a-server-to-your-linode

Don't let yourself get "trapped" by a shitty service (you can escape them without their help at all).


Title: Re: CIYAM - Project Plan Outline
Post by: Jybrael on March 06, 2015, 05:40:26 PM
Really great to see re-branding in progress. I hope it works out for you and I will soon check the project out.


Title: Re: CIYAM - Project Plan Outline
Post by: CIYAM on March 09, 2015, 04:08:10 PM
Basic blockchain functionality has been completed (including rewind and checkpoint logic).

A huge advantage that CIYAM blockchains have over all other existing ones is an automatic checkpoint system (that will let you prune old blocks and transactions from history).

Work is now underway of converting the legacy "packages" to work with the blockchain approach (the "Standard" package has already been converted and the User package is expected to be completed in the next few days).


Title: Re: CIYAM - Project Plan Outline
Post by: CIYAM on March 19, 2015, 11:17:06 AM
The User package has now been completed (took quite a bit longer than had been expected due to various changes needing to be made to handle the encryption of the password hash in particular).

A decision will need to be made about whether to next work on converting other packages to be suitable for blockchain applications or to instead start on the first actual blockchain application implementation with the Standard, User and Token packages that are ready for use.


Title: Re: CIYAM - Project Plan Outline
Post by: vbcs on March 19, 2015, 11:20:43 AM
Nice to see CIYAM is progressing! What other packages you have in mind? I guess for proof of concept reasons, we can have a simple app using the already in place packages.


Title: Re: CIYAM - Project Plan Outline
Post by: CIYAM on March 19, 2015, 11:26:33 AM
What other packages you have in mind?

Here is a list of the relevant packages that already exist in CIYAM (but are not yet "blockchain" ready):

Blog
Email
Event
Forum
Group
Holding
Itinerary
Ledger
Message
Photo
Project
Schedule
Timezone
Token
Transaction
Wallet

If we wanted to create a blockchain equivalent application to CIYAM Open (http://ciyam.org/open) then we'd need the Blog, Forum, Message and Project packages.


Title: Re: CIYAM - Project Plan Outline
Post by: CIYAM on April 04, 2015, 04:44:51 PM
Just an update to let people know that progress is continuing (admittedly at a slow but at least steady rate).

The "standard protocol" has been recently extended to make it fairly straight forward to manually create a blockchain (without txs at this stage).

The next step is to build this capability into the "loop-back peer support" so that a test blockchain can be constructed using just the one computer and after this has been tested blockchains built by multiple peers will next be tested before txs are then integrated.

For those who have been following AT (Automated Transactions) you might be pleased to know that a second blockchain (Qora) will be going live with AT very soon (perhaps as soon as one week from this post).


Title: Re: CIYAM - Project Plan Outline
Post by: jantenner81 on April 11, 2015, 02:15:40 PM
Dear community!

Just want to officially confirm, i'm back!
I'm UI/UX developer and i'll assisting on marketing related tasks in future also!
Stay tuned!

Happy to be back :)
Cheers
jan


Title: Re: CIYAM - Project Plan Outline
Post by: CIYAM on April 14, 2015, 03:23:27 PM
Great to have Jan back with us and some good news in regards to the CIYAM blockchain implementation.

Initial tests for peers being able to get new blocks from other peers are working perfectly (there is a lot more testing to do though).

One thing worth noting is that the CIYAM peer protocol is very much like traditional *nix protocols (text not binary) and has very few commands:

Code:
commands:
=========
chk <tag_or_hash> [<nonce>] (check if peer has a file or hash the content of a file with a nonce)
get <tag_or_hash> [<name>] (fetch a file from the files area)
put <hash> (stores a file to the files area)
pip <addr> (exchange a random peer's ip address)
tls (start TLS session)
bye (terminate session)


Title: Re: CIYAM - Project Plan Outline
Post by: CIYAM on April 16, 2015, 07:19:10 PM
Basic blockchain is now working (but needs a lot more testing) - if anyone is interested to run a node (and no - there is no financial reward for doing so) then contact me via PM.

To be very clear - the CIYAM blockchain is not a currency but instead aims to be a replacement for the current internet (perhaps an overly ambitious aim but why not "shoot for the moon"?).

One of the key objectives is to create a decentralised exchange for "coins" (and services).


Title: Re: CIYAM - Project Plan Outline and Progress Updates
Post by: CIYAM on June 07, 2015, 08:29:14 AM
A first very simplistic "application" using CIYAM with a blockchain has been successfully tested.

The application doesn't really do anything except let you update your own User record although it does include an encrypted "email" field (so that data encryption and decryption have been tested at the same time).

Although the application itself isn't much to write home about the fact that separate CIYAM server instances are now able to synchronise both their blockchains and blockchain applications is a big step forward.

In the next week the work will be focused on "rewinds" which is how a CIYAM blockchain system will handle "re-orgs" for its applications.


Title: Re: CIYAM - Project Plan Outline and Progress Updates
Post by: CIYAM on July 11, 2015, 03:03:28 PM
The "rewind" implementation has been completed and tested (so far no problems found).

Some time was lost reworking the way that blockchain applications are supported but now this work has been completed a single CIYAM application server can run both traditional and blockchain applications concurrently.

This will allow for a first blockchain application to be demonstrated on ciyam.org whilst keeping http://ciyam.org/open running as is (although that will probably still be a few months away from completion).


Title: Re: CIYAM - Project Plan Outline and Progress Updates
Post by: CIYAM on September 05, 2015, 02:13:17 PM
Initial testing of a simple application using a blockchain versions of the User and Message packages has been performed.

There were some teething issues but I'm pleased to say the application is working as expected (many thanks to @vbcs for setting up a VM to help with the testing).

Confirmation times were a little slower than I would have hoped for (up to around a minute) but with only two minting accounts it is perhaps not surprising that some blocks were slow (and some adjustments to the basic blockchain settings will likely improve that performance).

Currently txs that are not locally created do not actually appear until they are included in a block but this could be changed in order to have unconfirmed txs appear quicker (something I'll be looking into next).

After that work has been completed and some further testing has been performed a blockchain version of the Blog package will be created.


Title: Re: CIYAM - Project Plan Outline and Progress Updates
Post by: CIYAM on October 05, 2015, 04:54:14 PM
Non-local txs are now treated basically like local txs until confirmed (making the UX much quicker).

Attached files are also now working with the CIYAM blockchain and if they are identified as being "private" then they are automatically encrypted and decrypted.

Work has begun on the blockchain Blog package which hopefully will be nearing completion by next week.


Title: Re: CIYAM - Project Plan Outline and Progress Updates
Post by: zaph3t on October 06, 2015, 03:06:47 AM
Nice looking project. I will bookmark this for future updates. Good luck!


Title: Re: CIYAM - Project Plan Outline and Progress Updates
Post by: CIYAM on October 15, 2015, 04:22:05 PM
Work has begun on the blockchain Blog package which hopefully will be nearing completion by next week.

Unfortunately the Blog package work has been delayed as I decided to rework the way that encrypted fields were being handled (which will also be applied to the attached files for consistency).

I will be reworking the Message package to use the new encrypted field implementation before I start on the Blog package (a delay of perhaps a week).

One thing that anyone following this project will discover is that it is not being rushed (nor is it chasing VC funds that would probably force it to be rushed). The project actually began many years ago as an example of a new way to create 3-tier web applications and is now evolving into a new way to create blockchain applications.


Title: Re: CIYAM - Project Plan Outline and Progress Updates
Post by: CIYAM on October 20, 2015, 05:07:16 PM
The Message package rework is almost complete (a commit will most likely be pushed tomorrow after some final tweaks and testing).

What is really nice now is that the the end-user doesn't need to do anything to encrypt the content (it just happens automatically although there is an Encrypt checkbox that can be unchecked if one purposely wants to send a message that is not encrypted).

It might also be useful to add an icon to the message to indicate whether it is encrypted (have just added that to the "to do" list for tomorrow).


Title: Re: CIYAM - Project Plan Outline and Progress Updates
Post by: CIYAM on October 22, 2015, 05:08:52 PM
The commit for the Message package changes has now been pushed (and it is a big one).

For now I've decided not to do the icon thing (mostly because I can't work out what would be best to use) but I think having an Encrypt checkbox is reasonable enough for now.

Some further testing to happen over the weekend then I'll start work on the Blog package.


Title: Re: CIYAM - Project Plan Outline and Progress Updates
Post by: CIYAM on November 11, 2015, 04:21:30 PM
Work on the Blog package is proceeding, however, working on this has introduced some new challenges.

One of the problems is having "tags" (useful for searching) but limiting their creation so that the application doesn't get attacked (with an unreasonably large list of tags).


Title: Re: CIYAM - Project Plan Outline and Progress Updates
Post by: CIYAM on November 29, 2015, 01:16:01 PM
To get around the problems of potential quantity attacks - limits were introduced for things like the number of tags per Blog Entry and the number of Blog Tags that can be created by an account.

Encryption has not been addressed at this stage but I've decided to change the focus of this project away from the packages for now and instead towards the more technical side of how a DB can work seamlessly with a blockchain.


Title: Re: CIYAM - Project Plan Outline and Progress Updates
Post by: CIYAM on December 14, 2015, 01:08:10 PM
After taking some time off to relax and recoup I have unlocked this topic to continue reporting on the progress of CIYAM (and to those who sent me PM's requesting that I continue to update this topic many thanks for the support - it is good to know that I'm not the only one following this topic).

The blockchain version of the Blog package has now been completed and has been in testing for a couple of weeks now. No major issue has been found but some minor glitches and performance bottlenecks have been recently worked on.


Title: Re: CIYAM - Project Plan Outline and Progress Updates
Post by: CIYAM on December 16, 2015, 05:25:56 PM
Although unrelated to the main project I have taken off a few days to create a new computer language that I am quite excited about.

It is pretty much not like anything else around (although it has been already compared to "brainfuck") and the reason for its creation will be made apparent at a later time.

Rather than describe the whole thing in detail I'll just show a couple of examples:

Code:
@hello=`Hello`world!`
!hello

would result in the output:
Code:
Hello world!

a more sophisticated example is as follows:
Code:
@final=?=z_?!_~x_~y_~z
@reverse=?x!final_>x,y_<z,y_!reverse
@assign=@x=abcdefghijklmnopqrstuvwxyz_!reverse
@test=@x=?_@y=_@z=_?x!assign_!reverse
!test

which would result in the output:
Code:
zyxwvutsrqponmlkjihgfedcba

and if you then did this:
Code:
!test

you'd see this:
Code:
abcdefghijklmnopqrstuvwxyz

:)


Title: Re: CIYAM - Project Plan Outline and Progress Updates
Post by: bitspill on December 17, 2015, 05:13:58 AM
Although unrelated to the main project I have taken off a few days to create a new computer language that I am quite excited about.

It is pretty much not like anything else around (although it has been already compared to "brainfuck") and the reason for its creation will be made apparent at a later time.

Rather than describe the whole thing in detail I'll just show a couple of examples:

Code:
@hello=`Hello`world!`
!hello

would result in the output:
Code:
Hello world!
Ok, I can see that.

a more sophisticated example is as follows:
Code:
@final=?=z_?!_~x_~y_~z
@reverse=?x!final_>x,y_<z,y_!reverse
@assign=@x=abcdefghijklmnopqrstuvwxyz_!reverse
@test=@x=?_@y=_@z=_?x!assign_!reverse
!test

which would result in the output:
Code:
zyxwvutsrqponmlkjihgfedcba

and if you then did this:
Code:
!test

you'd see this:
Code:
abcdefghijklmnopqrstuvwxyz

:)

You lost me.

I can sort of see that @something appears to define it, !something recalls it's value, I assume ? is an if statement of sorts, the rest of the things I just don't see yet but will probably understand when a fuller explanation comes later. Right now the biggest thing I don't see is why the second !test returns a-z instead of z-a again.


Title: Re: CIYAM - Project Plan Outline and Progress Updates
Post by: CIYAM on December 17, 2015, 06:39:53 AM
I can sort of see that @something appears to define it, !something recalls it's value, I assume ? is an if statement of sorts, the rest of the things I just don't see yet but will probably understand when a fuller explanation comes later. Right now the biggest thing I don't see is why the second !test returns a-z instead of z-a again.

So what the ! actually does is "execute" the contents of a variable as instructions. You are correct that ? is a conditional (testing if a variable is empty or not) with the ! immediately following it being a variable whose contents will be executed if the condition fails.

The key function (and in this rather strange language functions and variable values are interchangeable) is this one:
Code:
@reverse=?x!final_>x,y_<z,y_!reverse

and one thing you might notice straight away is the !reverse at the end of it which means that if you execute !reverse it will execute itself (as the last step). Noting that if the conditional fails then no further steps are executed (so you don't end up with an infinite loop).

To pull it apart step by step (noting that underbars are the step separators) we have:

?x!final which will check to see if x is empty and if so then the function final will be called (and no further step)
>x,y this is a special operation that removes the last character from x and then prepends it to y
<z,y this is another similar operation that removes the first character from y and the appends it to z
reverse executes the function again

The other other functions involved are test (the main entry point), assign (used to assign an initial value if one doesn't already exist) and final which stores and outputs the value of z and then deletes the variables x, y and z.

It is a "string reverse" and that is why if it is repeated the output is the reverse of the previous one.

Being basically just a functional language there are no line numbers so the order that the variables are defined in doesn't matter provided they all exist when you go to execute test. :)


Title: Re: CIYAM - Project Plan Outline and Progress Updates
Post by: CIYAM on December 18, 2015, 02:29:54 PM
The major performance bottlenecks with syncing the CIYAM blockchain (discovered with the Blog package testing) have now been resolved.

Even with the improvements it isn't a "speed demon" but then again it was never the goal to try and be "the fastest" (as I think that focus is best suited to more simple tx processing blockchains rather than a general purpose application system such as CIYAM).

What has been achieved is a system that works with a standard relational DB (MySQL) that is tied to a "git" like file-system (for receiving txs and blocks) to reliably keep multiple separate DBs in sync in accordance with the consensus rules that it uses.

Unfortunately we have no marketing team now nor much funding to "buy press" (which is what many other projects do but which I think is sort of lame anyway) so for now I am going to just play with some AI stuff that I've begun working on (the weird new language) and enjoy a bit of a break.


Title: Re: CIYAM - Project Plan Outline and Progress Updates
Post by: CIYAM on January 03, 2016, 01:42:27 PM
Some exciting news is that I have successfully tested an ACCT CLTV redeem using Bitcoin (regest)!!!

The script to do this has been added to the CIYAM project so provided that you install Bitcoin you will be able to run this using the ciyam_client application.

Usage is as follows (make sure you have bitcoind running before doing this):
Code:
./ciyam_client -echo -quiet -no_prompt < test_acct_cltv.cin

The script contents is as follows:
Code:
; Copyright (c) 2016 CIYAM Developers
;
; Distributed under the MIT/X11 software license, please refer to the file license.txt
; in the root project directory or http://www.opensource.org/licenses/mit-license.php.
;
;CIYAM Bitcoin regression test script for ACCT CLTV redemption
;-------------------------------------------------------------
;
;NOTE: In order to utilise the following script you will first
;need to install Bitcoin either into the directory where CIYAM
;has been compiled or if not then set the TBITCOIN environment
;variable accordingly (check the 'tbitcoin' script to work out
;how to do this and don't forget the '-regtest' option). First
;make sure that any existing 'regtest' data has been destroyed
;then start 'bitcoind'.
;
~tbitcoin generate 101
;
; Define an address and matching WIF private key for testing
;
ADDR=mp7zjTrEszZezRBM1cUmTvaK2zf3MuDAHt
WKEY=cPR4DC5NXVkR37wEbCuUVuvuFxSozsMr8SHYteB2iqG8yV3uHdFR
;
; To simplify testing just uses the same address for redemption
;
crypto_addr_hash $ADDR
PKH1=$OUTPUT
PKH2=$OUTPUT
;
; Setup an ACCT P2SH script and then get its address and script hash
;
SCTH=c775e7b757ede630cd0aa1113bd102661ab38829ca52a6422ab782862f268646
~tbitcoin importprivkey $WKEY
TXID=@~tbitcoin sendtoaddress $ADDR 50
BLKN=7f
SCRIPT=76a820%SCTH%87637576a914%PKH1%88ac6701%BLKN%b17576a914%PKH2%88ac68
crypto_p2sh_addr TBTC $SCRIPT
P2SH_ADDR=$OUTPUT
crypto_addr_hash $P2SH_ADDR
P2SH_HASH=$OUTPUT
;
; Send funds to the P2SH address
;
~tbitcoin generate 1
TXID=@~tbitcoin sendtoaddress $P2SH_ADDR 50
OLD_TX=@~tbitcoin getrawtransaction $TXID
~tbitcoin decoderawtransaction $OLD_TX
;
; (check that the VOUT matches or change the next line)
; (also verify the P2SH scriptPubKey's script and hash)
;
VOUT=0
#$P2SH_HASH
~tbitcoin getblockcount
LOCK=127
crypto_p2sh_redeem $TXID $VOUT $SCRIPT $ADDR 5000000000 $WKEY $LOCK
RAW_TX=$OUTPUT
~tbitcoin decoderawtransaction $RAW_TX
~tbitcoin signrawtransaction $RAW_TX
;
; Note this attempt will fail due to being non-final (i.e. locktime)
;
~tbitcoin sendrawtransaction $RAW_TX
;
; Increase the block height and then redeem funds from the P2SH UTXO
;
~tbitcoin generate 25
~tbitcoin getblockcount
TXID=@~tbitcoin sendrawtransaction $RAW_TX
NEW_TX=@~tbitcoin getrawtransaction $TXID
~tbitcoin decoderawtransaction $NEW_TX
~tbitcoin generate 1

In order to use it you will need to delete any existing 'regtest' stuff first.

This is only the CLTV redeem (or "refund redeem") - so the next step will be the "reveal secret redeem".


Title: Re: CIYAM - Project Plan Outline and Progress Updates
Post by: vbcs on January 03, 2016, 03:14:07 PM
Great job Ian! Congrats! I will try to write a howto tutorial about this in the following days. Many folks here are not aware how to run CIYAM.


Title: Re: CIYAM - Project Plan Outline and Progress Updates
Post by: CIYAM on January 04, 2016, 08:21:00 AM
I extended the P2SH redeem command to allow for "extra data" to be pushed onto the scriptSig stack which means the "secret reveal" method can also now be used - modified script is as follows:

Code:
; Copyright (c) 2016 CIYAM Developers
;
; Distributed under the MIT/X11 software license, please refer to the file license.txt
; in the root project directory or http://www.opensource.org/licenses/mit-license.php.
;
; CIYAM Bitcoin test script for ACCT using either a CLTV or secret reveal redemption tx
; -------------------------------------------------------------------------------------
;
; NOTE: In order to utilise the following script you will first need to install Bitcoin
; into the directory where CIYAM has been compiled or else set the TBITCOIN environment
; variable accordingly (check the 'tbitcoin' script to work out how to do this and when
; doing this don't forget the '-regtest' option). Check that there is no 'regtest' data
; before starting 'bitcoind' and then running this script.
;
;SECRET_REDEEM=1
;
@ifndef $SECRET_REDEEM
#Redeeming using CLTV refund...
@else
#Redeeming using secret reveal...
@endif
~tbitcoin generate 101
;
; Define an address and matching WIF private key for testing
;
ADDR=mp7zjTrEszZezRBM1cUmTvaK2zf3MuDAHt
WKEY=cPR4DC5NXVkR37wEbCuUVuvuFxSozsMr8SHYteB2iqG8yV3uHdFR
;
; To simplify testing just uses the same address for redemption
;
crypto_addr_hash $ADDR
PKH1=$OUTPUT
PKH2=$OUTPUT
;
; Setup an ACCT P2SH script and then get its address and script hash
;
SCTH=c775e7b757ede630cd0aa1113bd102661ab38829ca52a6422ab782862f268646
~tbitcoin importprivkey $WKEY
TXID=@~tbitcoin sendtoaddress $ADDR 50
BLKN=7f
SCRIPT=76a820%SCTH%87637576a914%PKH1%88ac6701%BLKN%b17576a914%PKH2%88ac68
crypto_p2sh_addr TBTC $SCRIPT
P2SH_ADDR=$OUTPUT
crypto_addr_hash $P2SH_ADDR
P2SH_HASH=$OUTPUT
;
; Send funds to the P2SH address
;
~tbitcoin generate 3
TXID=@~tbitcoin sendtoaddress $P2SH_ADDR 50
OLD_TX=@~tbitcoin getrawtransaction $TXID
~tbitcoin decoderawtransaction $OLD_TX
;
; (check that the VOUT matches or change the next line)
; (also verify the P2SH scriptPubKey's script and hash)
;
VOUT=0
#$P2SH_HASH
~tbitcoin generate 3
~tbitcoin getblockcount
LOCK=127
@ifndef $SECRET_REDEEM
crypto_p2sh_redeem $TXID $VOUT $SCRIPT $ADDR 5000000000 $WKEY $LOCK
@else
crypto_p2sh_redeem $TXID $VOUT $SCRIPT $ADDR 5000000000 $WKEY -e=31323334353637383930
@endif
RAW_TX=$OUTPUT
~tbitcoin decoderawtransaction $RAW_TX
~tbitcoin signrawtransaction $RAW_TX
@ifndef $SECRET_REDEEM
;
; Note this attempt will fail due to being non-final (i.e. locktime)
;
~tbitcoin sendrawtransaction $RAW_TX
;
; Increase the block height and then redeem funds from the P2SH UTXO
;
~tbitcoin generate 20
@endif
~tbitcoin getblockcount
TXID=@~tbitcoin sendrawtransaction $RAW_TX
NEW_TX=@~tbitcoin getrawtransaction $TXID
~tbitcoin decoderawtransaction $NEW_TX
~tbitcoin generate 1

So the same script can redeem either way (set the SECRET_REDEEM environment variable for the "secret reveal" method).



Title: Re: CIYAM - Project Plan Outline and Progress Updates
Post by: CIYAM on January 06, 2016, 05:00:24 AM
Added support for "unix timestamp" CLTV redemption and other minor changes were made to the script (https://github.com/ciyam/ciyam/blob/master/src/test_acct_cltv.cin).

The following shows the three different ways that you can redeem the CLTV P2SH UTXO:

NOTE: Before running each and any of the following first ensure that bitcoind is not running then delete the the regtest folder (if it exists) and then start bitcoind.

1. The "secret reveal" method (which will redeem immediately).
Code:
USE_SECRET_REVEAL=1
USE_UNIX_TIMESTAMP=
./ciyam_client -echo -quiet -no_prompt < test_acct_cltv.cin

2. The CLTV method using a block number (which will redeem after X blocks).
Code:
USE_SECRET_REVEAL=
USE_UNIX_TIMESTAMP=
./ciyam_client -echo -quiet -no_prompt < test_acct_cltv.cin

3. The CLTV method using a unix timestamp (which will redeem after X seconds).
Code:
USE_SECRET_REVEAL=
USE_UNIX_TIMESTAMP=1
./ciyam_client -echo -quiet -no_prompt < test_acct_cltv.cin


Title: Re: CIYAM - Project Plan Outline and Progress Updates
Post by: CIYAM on January 11, 2016, 03:29:02 PM
Whilst I've been taking a bit of a break from the core parts of the development of the CIYAM project I created a new tiny computer language that I have named FISSILE (https://github.com/ciyam/ciyam/blob/master/src/console_commands.cpp#L188).

Basically it's a Turing complete extension to the CIYAM console handler (which is part of any CIYAM application that has a console) and fits in with the environment variable handling that was already present in the console handler.

For those that have an interest in "pure mathematics" the way that this language understand maths is purely symbolically (i.e. it doesn't do any normal math ops in the code).

Here as a sample of how this works:

Code:
> *#=10

> *#
10

> *#2
1010

> *#8
12

>*#16
a

> *$
..........

and note the following:

Code:
> **

# (raw string) 10#
* (raw string) 10000
10#0 (raw string)
10#1 (raw string) .
10#2 (raw string) ..
10#3 (raw string) ...
10#4 (raw string) ....
10#5 (raw string) .....
10#6 (raw string) ......
10#7 (raw string) .......
10#8 (raw string) ........
10#9 (raw string) .........
16#0 (raw string)
16#1 (raw string) .
16#2 (raw string) ..
16#3 (raw string) ...
16#4 (raw string) ....
16#5 (raw string) .....
16#6 (raw string) ......
16#7 (raw string) .......
16#8 (raw string) ........
16#9 (raw string) .........
16#a (raw string) ..........
16#b (raw string) ...........
16#c (raw string) ............
16#d (raw string) .............
16#e (raw string) ..............
16#f (raw string) ...............
2#0 (raw string)
2#1 (raw string) .
8#0 (raw string)
8#1 (raw string) .
8#2 (raw string) ..
8#3 (raw string) ...
8#4 (raw string) ....
8#5 (raw string) .....
8#6 (raw string) ......
8#7 (raw string) .......

(the latter information is how the former numerical outputs were performed - there is no code that is directly doing any hex, octal or binary conversions with numbers but instead just code that is doing symbolic operations upon strings which works extremely fast)


Title: Re: CIYAM - Project Plan Outline and Progress Updates
Post by: CIYAM on January 14, 2016, 09:27:32 AM
A few improvements were made to the ACCT demo script (https://github.com/ciyam/ciyam/blob/master/src/test_acct_cltv.cin).

Previously the actual "secret in hex bytes" (and its SHA256 hash) were just hard-coded but now after adding some new environment variable transformation functions the secret can be provided like this:

Code:
SECRET=abcdef
USE_SECRET_REVEAL=1
./ciyam_client -echo -quiet -no_prompt < test_acct_cltv.cin

(so it will now automatically work out the hex bytes given an ASCII secret as well as its SHA256 hash)


Title: Re: CIYAM - Project Plan Outline and Progress Updates
Post by: CIYAM on January 16, 2016, 11:32:13 AM
A prototype Trade package (for being able to list, locate and lock into ACCT trades) has been developed.

Some screen snapshots can be found here: https://bitcointalk.org/index.php?topic=1316199.msg13571110#msg13571110


Title: Re: CIYAM - Project Plan Outline and Progress Updates
Post by: CIYAM on January 26, 2016, 07:07:12 AM
Further progress has been made with the new Trade package (it's nearing functional completion) and with the help of four other batch/script files to use Bitcoin with the "-regtest" (with one of four different wallets) the following script https://github.com/ciyam/ciyam/blob/master/src/bct_acct_test.cin simulates an ACCT between two users.

In order to turn this into a usable decentralised exchange platform the Wallet package will need to be enhanced to perform the functionality that is being done manually through the CIYAM script.


Title: Re: CIYAM - Project Plan Outline and Progress Updates
Post by: CIYAM on January 27, 2016, 03:19:13 PM
One of the good things about having a project as large as this one is that when you get bored working on one thing there are many other things you can work on to keep your motivation going.

Today's bit of fun for me was to extend the console user input behaviour to support a single key "choice" from a set of options.

A console user input line begins with an ampersand character (&) with what follows typically being in the following form:

Code:
&VAR=

When executed by a CIYAM console the above would prompt the user with:
Code:
VAR=

and the user would type in the value and press enter (even if standard input was redirected from a file this would be direct console input).

But let's say we wanted the user to decide whether or not to continue something. It would be nice to just be able to type a simple 'y' or 'n' character (with no need to hit an Enter key) and this is what the "choice" addition I made today allows.

Here is an example of what you would put into the console script:

Code:
&Continue? [yes=1!Yes|no=!No] (choose one)

When the console command handler reads this you'll see the following output to the console:

Code:
Continue? [y]es, [n]o (choose one)

Assuming you hit 'y' then the above line would instantly change to this:

Code:
Continue? Yes

And the actual "command" issued would be this:

Code:
Continue=1

which then could be used with say an @ifdef conditional such as the following:

Code:
@ifdef $Continue
#we are continuing...
@else
#we are not continuing...
@endif

Obviously extending the console conditional handling to check values (rather than just whether empty or not) is something that will need to be added in order to make this new feature more usable but that will have to wait for another day when I'm bored. :)


Title: Re: CIYAM - Project Plan Outline and Progress Updates
Post by: CIYAM on January 31, 2016, 02:17:55 PM
The Trade package is now at the point of final testing and so should be ready any day now.

In the meantime I discovered this: https://github.com/tromp/cuckoo

There is a whitepaper for this algorithm as well and it so far looks very promising to me - it could be the final piece in the CIYAM blockchain jigsaw that I have been looking for.


Title: Re: CIYAM - Project Plan Outline and Progress Updates
Post by: CIYAM on February 05, 2016, 01:01:32 PM
Although Cuckoo is still a likely candidate for now a simpler algorithm has been implemented (the key loop is here: https://github.com/ciyam/ciyam/blob/master/src/crypt_stream.cpp#L440).

Using this algorithm CIYAM blocks now require a "nonce" that is created by trying different values until one that produces an SHA256 hash with a leading zero hex digit is found. As per any other "proof of work" implementation verifying the nonce is much simpler than finding it.

As the main point of the CIYAM blockchain is not "proof of work" this is simply being added for NAS prevention (and the "difficulty" is kept very low).

The same POW will later be used for account creation and verification (a key part of how a CIYAM blockchain is secured) and for that purpose the difficulty will be greatly increased (current testing indicates that two leading hex digits should suffice).


Title: Re: CIYAM - Project Plan Outline and Progress Updates
Post by: CIYAM on February 14, 2016, 11:00:39 AM
Further work on the Wallet package was completed today - now it handles the "spendable" attribute that was added to the "listunspent" output for Bitcoin (for "watch only" addresses).

Currently the Wallet package works with four different kinds of wallets being:

Private (where the keys belong to the application and are generated randomly)
External (where the keys belong to an external application such as bitcoind and are generated by it)
Watch Only (where keys are considered as belonging to "cold storage" and are therefore are never generated)
Deterministic (where keys are generated from a "seed" which is all that is required to back up and later restore such a wallet)


Title: Re: CIYAM - Project Plan Outline and Progress Updates
Post by: CIYAM on March 01, 2016, 12:45:24 PM
A key file that is only generated the first time that the CIYAM application server is run is called ciyam_server.sid and this file is unique to every CIYAM system and is used as a source of entropy for encryption (technically it is what is known a UUID).

Backing up this file is essential if you are going to be able to restore a CIYAM system in case of it being damaged and it is also essential if you were wanting to migrate to new hardware so a commit was pushed today that will display a "fingerprint" of this UUID the first time that you run Meta (which you should record as well as more importantly making sure that you have backed up the ciyam_server.sid file).

The next important focus is going to be on extending the Wallet package to be able to work with Atomic Cross-Chain Transfer transactions (that use CLTV).


Title: Re: CIYAM - Project Plan Outline and Progress Updates
Post by: CIYAM on March 18, 2016, 02:12:25 PM
Initial work on the Wallet and Transaction packages to support ACCT (using CLTV) has been completed.

Currently it requires a fair bit of manual copy and pastes which should be able to be removed by optionally tying the Trade package to the Wallet and Transaction packages (which I think is going to be essential for this to be generally usable).

I expect this will take at least a couple of weeks after which work on being able to turn this into a combined local and blockchain application will commence.


Title: Re: CIYAM - Project Plan Outline and Progress Updates
Post by: CIYAM on April 27, 2016, 03:53:50 PM
Working is still continuing although it was paused for a while due to shifting home and taking a holiday.

Some preparatory commits for tying the Trade package to the Wallet and Transaction packages have already been pushed and work on the Trade package extensions has now begun.


Title: Re: CIYAM - Project Plan Outline and Progress Updates
Post by: CIYAM on August 08, 2016, 09:57:47 AM
Holidays were extended as I had pretty much lost motivation on the project ("burn out").

Recently I have been doing some low-level DB stuff as a tangent but hopefully some further work on the Trade and Wallet packages will be coming soon.


Title: Re: CIYAM - Project Plan Outline and Progress Updates
Post by: CIYAM on December 01, 2016, 02:21:33 PM
The Trade package has been extensively improved to work along with the Wallet and Transaction packages so that nearly all of the ACCT operations (such as creating the required wallets and receive or refund transactions) are now automated.

A demo of a working ACCT dialog will be made available soon (although at this stage only to those involved with the CIYAM project).

Others wanting to get involved with the project further should send me an email address in order to get a Slack invitation.