From 4f7b684fb4c432b936588a869179a4f786f9db45 Mon Sep 17 00:00:00 2001 From: Quantum1248 Date: Sun, 22 Jan 2017 16:06:07 +0100 Subject: [PATCH 1/3] Modifiche necessarie per permettere l'update Modifica del modo di comunicare dei peer e creazione dell'enumeratore ECommand --- .../.vs/Client_ViggiCoin v2.0/v14/.suo | Bin 89600 -> 87040 bytes .../Client_ViggiCoin v2.0/CBlock.cs | 34 ++++----- .../Client_ViggiCoin v2.0/CBlockChain.cs | 11 ++- .../Client_ViggiCoin v2.0/CPeer.cs | 45 +++++++++--- .../Client_ViggiCoin v2.0/CPeers.cs | 68 ++++++++++++++---- .../Client_ViggiCoin v2.0/CServer.cs | 2 +- .../Client_ViggiCoin v2.0/CTemporaryBlock.cs | 17 +++++ .../Client_ViggiCoin v2.0.csproj | 2 + .../Client_ViggiCoin v2.0/ECommand.cs | 16 +++++ ...gnTimeResolveAssemblyReferencesInput.cache | Bin 6951 -> 6912 bytes 10 files changed, 153 insertions(+), 42 deletions(-) create mode 100644 Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CTemporaryBlock.cs create mode 100644 Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/ECommand.cs diff --git a/Client_ViggiCoin v2.0/.vs/Client_ViggiCoin v2.0/v14/.suo b/Client_ViggiCoin v2.0/.vs/Client_ViggiCoin v2.0/v14/.suo index 273bf3d71fb5c9f716cc3e974ef6712fc8ef2a1b..7db8f012a94fe49e71d96d196271f04c602092a4 100644 GIT binary patch delta 8536 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 Gdi@6}#8iU- delta 9040 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 /// Crea un nuovo oggetto CBlock usando una stringa che lo rappresenta. /// /// Stringa che rappresenta l'oggetto CBlock. - public static CBlock Deserialize(string BlockString) + public static CBlock Deserialize(string SerializedBlock) { string[] blockField; - BlockString=BlockString.Trim('{', '}'); - blockField = BlockString.Split(';'); + SerializedBlock = SerializedBlock.Trim('{', '}'); + blockField = SerializedBlock.Split(';'); if (Program.DEBUG) CIO.DebugOut("Deserializing block number: "+ blockField[1]+"."); return new CBlock(blockField[0], Convert.ToUInt64(blockField[1]), blockField[2], Convert.ToUInt64(blockField[3]), Convert.ToUInt64(blockField[4]), Convert.ToUInt16(blockField[5])); } + /* public ulong BlockNumber { get { return mBlockNumber; } } + */ } } \ No newline at end of file diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CBlockChain.cs b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CBlockChain.cs index 00084d4..cfbc88c 100644 --- a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CBlockChain.cs +++ b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CBlockChain.cs @@ -4,8 +4,8 @@ namespace Client_ViggiCoin_v2._0 { class CBlockChain { - private CBlock mLastBlock=null; - + private CBlock mLastBlock=null; //ultimo blocco ricevuto + private CBlock mLastValidBlock = null; //ultimo blocco sicuramente valido #region Singleton private static CBlockChain instance; @@ -32,13 +32,18 @@ public CBlock LastBlock get { return mLastBlock; } } + public CBlock LastValidBlock + { + get { return mLastBlock; } + } + /// /// Carica l'ultimo blocco della blockchain. /// private void Load() { StreamReader file = new StreamReader("blockchain.txt"); - mLastBlock = CBlock.Deserialize(file.ReadLine()); + mLastValidBlock = CBlock.Deserialize(file.ReadLine()); } diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CPeer.cs b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CPeer.cs index cc19e54..d01199b 100644 --- a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CPeer.cs +++ b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CPeer.cs @@ -104,20 +104,49 @@ public bool Connect() } } - public void SendData(string Msg) + public void SendCommand(ECommand Cmd) { - byte[] EncryptedMsg; - EncryptedMsg = RSA.Encrypt(ASCIIEncoding.ASCII.GetBytes(Msg), csp.ExportParameters(false), false); - CServer.SendData(mSocket, EncryptedMsg);//non è asincrono!! + switch (Cmd) + { + default: + throw new ArgumentException("Comando al peer non supportato."); + } + } + + public ECommand ReceiveCommand() + { + string msg = ReceiveString(); + switch(msg) + { + default: + throw new ArgumentException("Ricevuta stringa di comando non supportata."); + } } - public string ReceiveData() + public void SendString(string Msg) { - byte[] DecryptedMsg; - DecryptedMsg = RSA.Decrypt(CServer.ReceiveData(mSocket), cspMine.ExportParameters(true), false); - return ASCIIEncoding.ASCII.GetString(DecryptedMsg); + SendData(ASCIIEncoding.ASCII.GetBytes(Msg));//non è asincrono!! } + public string ReceiveString() + { + return ASCIIEncoding.ASCII.GetString(ReceiveData()); + + } + + //TODO Criptare le comunicazioni + public void SendData(byte[] Msg) + { + CServer.SendData(mSocket, Msg);//non è asincrono!! + } + + public byte[] ReceiveData() + { + return CServer.ReceiveData(mSocket); + } + + + /// /// Rimane in attesa di messaggi dal peer a cui è collegato il socket mSocket. /// diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CPeers.cs b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CPeers.cs index b074439..4b057ae 100644 --- a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CPeers.cs +++ b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CPeers.cs @@ -87,18 +87,21 @@ public int NumConnection() /// Esegue una richiesta ai peer collegati. /// /// Richiesta da effettuare. - /// Parametro usato per ritornare un risultato quando necessario. + /// Parametro usato per passare un valore e/o ritornare un risultato quando necessario. /// - public bool DoRequest(ERequest Rqs, object Arg=null) + public void DoRequest(ERequest Rqs, object Arg = null) //(!) rivedere i metodi di input/output del metodo { switch (Rqs) { case ERequest.UpdatePeers: UpdatePeers(); - return true; + break; case ERequest.SendPeersList: SendPeersList(Arg as CPeer); - return true; + break; + case ERequest.LastValidBlock: + RequestLastValidBlock(); + break; default: throw new ArgumentException("Invalid request."); } @@ -106,12 +109,12 @@ public bool DoRequest(ERequest Rqs, object Arg=null) private void UpdatePeers() { - string ris=""; + string ris = ""; string msg; string[] lists; string[] peers; - List receivedPeers = new List(), newPeers=new List(); - for(int i = 0; i < mPeers.Length; i++) + List receivedPeers = new List(), newPeers = new List(); + for (int i = 0; i < mPeers.Length; i++) { if (mPeers[i] != null) { @@ -119,14 +122,14 @@ private void UpdatePeers() lock (mPeers[i].Socket) { mPeers[i].SendData("LOCK"); //(!)in realtà non serve a niente? - msg=mPeers[i].ReceiveData(); - if(msg=="OK") + msg = mPeers[i].ReceiveData(); + if (msg == "OK") { mPeers[i].SendData("UPDATEPEERS"); msg = mPeers[i].ReceiveData(); - ris += msg+"/"; + ris += msg + "/"; } - // mPeers[i].SendData("ENDLOCK"); + // mPeers[i].SendData("ENDLOCK"); } } } @@ -175,16 +178,53 @@ private static CPeer DeserializePeer(string Peer) private void SendPeersList(CPeer Peer) { - string PeersList=""; + string PeersList = ""; for (int i = 0; i < mPeers.Length; i++) { if (mPeers[i] != null) - PeersList += mPeers[i].IP+","+mPeers[i].Port+";"; + PeersList += mPeers[i].IP + "," + mPeers[i].Port + ";"; } - PeersList =PeersList.TrimEnd(';' ); + PeersList = PeersList.TrimEnd(';'); Peer.SendData(PeersList); } + private CTemporaryBlock RequestLastValidBlock() + { + List blocks = new List(); + CTemporaryBlock ris = null; + ECommand cmd; + string msg; + + foreach (CPeer p in mPeers) + { + p.SendCommand(ECommand.LOOK); + cmd = p.ReceiveCommand(); + if (cmd == ECommand.OK) + { + p.SendCommand(ECommand.GET); + cmd = p.ReceiveCommand(); + if (cmd == ECommand.OK) + { + p.SendCommand(ECommand.LASTVALID); + msg = p.ReceiveString(); + blocks.Add(new CTemporaryBlock(CBlock.Deserialize(msg), p)); + } + } + } + + if (blocks[0] != null) + { + ris = blocks[0]; + foreach (CTemporaryBlock b in blocks) + { + if (ris.BlockNumber < b.BlockNumber) + ris = b; + } + } + return ris; + + } + } } diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CServer.cs b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CServer.cs index 9aca43b..06e2fe0 100644 --- a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CServer.cs +++ b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CServer.cs @@ -169,7 +169,7 @@ private void UpdateBlockchain() ArgumentWrapper blockchainValidity = new ArgumentWrapper(); mPeers.DoRequest(ERequest.LastValidBlock, otherLastValidBlc); - if (CBlockChain.Instance.LastBlock.BlockNumber <= otherLastValidBlc.Value.BlockNumber) + if (CBlockChain.Instance.LastValidBlock.BlockNumber <= otherLastValidBlc.Value.BlockNumber) { mPeers.DoRequest(ERequest.DownloadMissingValidBlock, newBlocks); CBlockChain.Add(newBlocks.Value); diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CTemporaryBlock.cs b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CTemporaryBlock.cs new file mode 100644 index 0000000..d358a97 --- /dev/null +++ b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CTemporaryBlock.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Client_ViggiCoin_v2._0 +{ + class CTemporaryBlock:CBlock + { + private CPeer mSender; + public CTemporaryBlock(CBlock Block, CPeer Sender):base(Block.Hash,Block.BlockNumber,Block.Transiction,Block.Nonce,Block.Timestamp,Block.Difficutly) + { + mSender = Sender; + } + } +} diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0.csproj b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0.csproj index c89a53e..2036668 100644 --- a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0.csproj +++ b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0.csproj @@ -50,6 +50,8 @@ + + diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/ECommand.cs b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/ECommand.cs new file mode 100644 index 0000000..2730aab --- /dev/null +++ b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/ECommand.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Client_ViggiCoin_v2._0 +{ + enum ECommand + { + LOOK, + OK, + GET, + LASTVALID + } +} diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache index 3fc3c7444c6bd12a6a92b18592cbe5c948de7aef..0ce8cd6192399681c680a4682ad2035188790517 100644 GIT binary patch delta 153 zcmZ2()?l__3Ag4XMrW&-(Bjmh;uzn=ywcR17?=Fy(%jU%lH!828MQ g$@07wlZAM0Xk-$pVY57M6Bp5{LB?<9laOQv087X?YXATM delta 192 zcmZoLTW+>t3AfpNMrW&-(Bjmh;uzn=qU8J-m;B_?+|<01;+U|^;?l$%h2WCXl+1hu rBLhRzn1G`EtkmR^;>qj9Ehe+_+%PR8SNCRHUN0{4v~ON79>@#;&m2aQ From ce2ec529f5f023fca9179ffae575e4fe89e0a9fa Mon Sep 17 00:00:00 2001 From: Quantum1248 Date: Sun, 22 Jan 2017 16:36:07 +0100 Subject: [PATCH 2/3] Cambiati dei nomi --- .../.vs/Client_ViggiCoin v2.0/v14/.suo | Bin 87040 -> 101376 bytes .../Client_ViggiCoin v2.0/ArgumentWrapper.cs | 2 +- .../Client_ViggiCoin v2.0/CBlock.cs | 2 +- .../Client_ViggiCoin v2.0/CBlockChain.cs | 2 +- .../Client_ViggiCoin v2.0/CIO.cs | 2 +- .../Client_ViggiCoin v2.0/CPeer.cs | 2 +- .../Client_ViggiCoin v2.0/CPeers.cs | 2 +- .../Client_ViggiCoin v2.0/CServer.cs | 2 +- .../Client_ViggiCoin v2.0/CTemporaryBlock.cs | 2 +- .../Client_ViggiCoin v2.0/ECommand.cs | 2 +- .../Client_ViggiCoin v2.0/ERequest.cs | 2 +- .../Client_ViggiCoin v2.0/Program.cs | 2 +- .../Client_ViggiCoin v2.0/RSA.cs | 2 +- PoC | 0 14 files changed, 12 insertions(+), 12 deletions(-) create mode 100644 PoC diff --git a/Client_ViggiCoin v2.0/.vs/Client_ViggiCoin v2.0/v14/.suo b/Client_ViggiCoin v2.0/.vs/Client_ViggiCoin v2.0/v14/.suo index 7db8f012a94fe49e71d96d196271f04c602092a4..e5f66fb42abbba07296423ea5790c31da0c1d640 100644 GIT binary patch delta 6084 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 Dfze;D delta 4761 zcmc(ie{fXQ702IsyPGV@CM;o-tR%=TYyy%5HZe*FkZf3pA%NM9Au=>T0s)obhu{WL z8FwlE=m@oBkL~N&5uJ!O*iI2%Ac&oDF-(WCqp0m)wv|Aur4B`ugd&xs-?Qw(D!FS)H;! z68MmcxlIjHA@{36Qv>ES^CO1Y>L`WN=T1obK02Pg6&I9LCgbp+EEg}s(3=iM0t*-d ztiT0wfC-EPX0QZ|07F3vkTurD>Ri-rFdAflOd#(OCZL@U3P6^k1Qk0Pw*gr|cIJ$= zN5yIz>IY+O2kLrI3ho4VfFe*1u^^S;Y` zLurDE(!|$G#WHf9xJYAhFNT%zZwr-;ei17Etkg-kj|(*(Z4t@{L@2SF2qp6%R4}TP z++0JcOG1eU6ao<{8HiA#a9k)6!2v`lSxFp40C0}Uq_4P+xO)OjGE6dtV0WUJ2@#hxbg36(kgi2a>3lI$xE z9v|b-i$>mX%j~phJV~6!M@(a3eItLBS7(;o81Gic6R*#IT)mC>Z2sIdMM7C}YJ8jn zV?#-QLPsE#&pXdkGxv|Ki=I(3aeNjn; zi6T1K?0e24F&7^U`={D`3HR}S_W2#wg|Pt%yXey)e<(a6K=*Llh#=K-|A>3c@yL#< z5y%Op_%T_mhP*nEIWtX}gqGyq_;EOp<>N!DoBOhS7D?FgBz?f@9z~_%rwm_yl|k{t8Y2fl(2dI~r4!A0T0d2N)%ZH+<7 zXk5wZe6x7IrC|-1HGGZ=vKY5DVa8t3M&aV>DO~>GYdlcmV)NQ_;aabOT(J~T+hCUOusko%>3y{p+B3a} zWa-qWF>+d#P!xTz(y8i>a4%`~)2WG@n)mbSx(r@AZ|Rt043{0g(vK3i&hVp-dSf`NCylOf_r9z;S(yVD-99zJ z?X_cGdPUzczll0BRPD#2ED{2Fuz4gWTkNfKDT8}-;&G+vcmYZ$;ba-dg6xF&T zSXJ`8s^!$G-0CsUKO(6Ro;oy%$~ZJ@oZi{`5}EHp zSKMkGSngA+E?Ts2Id&+r+}B{9l`toD64Zz(q7SYjqUlU)D&>2q2s7taH=t73H`mRc zH6e~1^sqZ(WozlHDa(`=_|YmRFU>tna-haW35NBuh|s)in@-Aa~Cn4TEv zM#;_kR9o41$%r$!KGdW)J+;FSUXGkK6Yuy>T_WYOOYp$NYIR0*&sRoG*yUw!_(`)Q z4zbR~Kn+_coK<5^44tGcm~l?wN3&`z@(KAydhW}5-y%OO62H(n3Gt(}E?eHxwlc6d zuO%)N{0c)3=pSdHR-(`o?FTppM7YJzLKjQW}(MXI+HPa}i{tpC-4=cigkH1(Ppr1_@n00`kt5+D z9Nsk{8ICPQE3To*dSq9FksG=St@5A0AVtE9w{^KW)K!vRf~4$5*Lbh8Qh9(QUCZcI z&fj}P{XJ~a{-F1N)k^=45iPr@N8g+c&-=WaLP*5~_6zaXFd)1dC zyKwX~9&J}PS#-;}KGGHsqmtBjqn4J-#J$sKGw}!N=%{|D^!)#UAfg7Tde#0)!*#6g zySjO=W>T$c6xC`eNwlK7D~T)=^)mKwYD(Qhu_4%;eOHYN!WprbT>|)Vp_ zGHcuN$=m&05*2=@6T0c&I2C_+V0riQ2I?}>DLHz!_EJ5)jgutfCn6l@WJ2f63&DB{jauXZ@?5@f WZ(c6fH@(yS>QY*uUha>!Wbj{J9tkA? diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/ArgumentWrapper.cs b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/ArgumentWrapper.cs index b56b069..8258812 100644 --- a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/ArgumentWrapper.cs +++ b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/ArgumentWrapper.cs @@ -4,7 +4,7 @@ using System.Text; using System.Threading.Tasks; -namespace Client_ViggiCoin_v2._0 +namespace Blockchain { //Wrapper usato per ritornare valori dalla funzione CPeers.DoRequest() class ArgumentWrapper diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CBlock.cs b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CBlock.cs index 2c7bda2..05974a7 100644 --- a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CBlock.cs +++ b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CBlock.cs @@ -1,6 +1,6 @@ using System; -namespace Client_ViggiCoin_v2._0 +namespace Blockchain { public class CBlock { diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CBlockChain.cs b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CBlockChain.cs index cfbc88c..61a8b3a 100644 --- a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CBlockChain.cs +++ b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CBlockChain.cs @@ -1,6 +1,6 @@ using System.IO; -namespace Client_ViggiCoin_v2._0 +namespace Blockchain { class CBlockChain { diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CIO.cs b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CIO.cs index b888f09..ea3b9db 100644 --- a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CIO.cs +++ b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CIO.cs @@ -4,7 +4,7 @@ using System.Text; using System.Threading.Tasks; -namespace Client_ViggiCoin_v2._0 +namespace Blockchain { class CIO { diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CPeer.cs b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CPeer.cs index d01199b..dd033c4 100644 --- a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CPeer.cs +++ b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CPeer.cs @@ -7,7 +7,7 @@ using System.Net; using System.Security.Cryptography; -namespace Client_ViggiCoin_v2._0 +namespace Blockchain { class CPeer { diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CPeers.cs b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CPeers.cs index 4b057ae..aa47390 100644 --- a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CPeers.cs +++ b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CPeers.cs @@ -4,7 +4,7 @@ using System.Text; using System.Threading.Tasks; -namespace Client_ViggiCoin_v2._0 +namespace Blockchain { class CPeers { diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CServer.cs b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CServer.cs index 06e2fe0..87492f1 100644 --- a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CServer.cs +++ b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CServer.cs @@ -8,7 +8,7 @@ using System.Security.Cryptography; using System.IO; -namespace Client_ViggiCoin_v2._0 +namespace Blockchain { class CServer { diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CTemporaryBlock.cs b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CTemporaryBlock.cs index d358a97..ac004ab 100644 --- a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CTemporaryBlock.cs +++ b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CTemporaryBlock.cs @@ -4,7 +4,7 @@ using System.Text; using System.Threading.Tasks; -namespace Client_ViggiCoin_v2._0 +namespace Blockchain { class CTemporaryBlock:CBlock { diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/ECommand.cs b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/ECommand.cs index 2730aab..13ff379 100644 --- a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/ECommand.cs +++ b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/ECommand.cs @@ -4,7 +4,7 @@ using System.Text; using System.Threading.Tasks; -namespace Client_ViggiCoin_v2._0 +namespace Blockchain { enum ECommand { diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/ERequest.cs b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/ERequest.cs index c9e19c8..dc89e12 100644 --- a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/ERequest.cs +++ b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/ERequest.cs @@ -4,7 +4,7 @@ using System.Text; using System.Threading.Tasks; -namespace Client_ViggiCoin_v2._0 +namespace Blockchain { enum ERequest { diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/Program.cs b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/Program.cs index f5079e3..9da2d57 100644 --- a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/Program.cs +++ b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/Program.cs @@ -4,7 +4,7 @@ using System.Text; using System.Threading.Tasks; -namespace Client_ViggiCoin_v2._0 +namespace Blockchain { class Program { diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/RSA.cs b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/RSA.cs index bf34b1d..d6f1b36 100644 --- a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/RSA.cs +++ b/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/RSA.cs @@ -5,7 +5,7 @@ using System.Text; using System.Threading.Tasks; -namespace Client_ViggiCoin_v2._0 +namespace Blockchain { //TODO static class RSA diff --git a/PoC b/PoC new file mode 100644 index 0000000..e69de29 From 55df23f15ab04ec34dc945cf546b3497d642e3be Mon Sep 17 00:00:00 2001 From: Quantum1248 Date: Sun, 22 Jan 2017 16:52:55 +0100 Subject: [PATCH 3/3] Aggiunta cartella magica --- .../.vs/Client_ViggiCoin v2.0/v14/.suo | Bin .../Client_ViggiCoin v2.0.sln | 0 .../Client_ViggiCoin v2.0.v11.suo | Bin .../Client_ViggiCoin v2.0/App.config | 0 .../Client_ViggiCoin v2.0/ArgumentWrapper.cs | 0 .../Client_ViggiCoin v2.0/CBlock.cs | 0 .../Client_ViggiCoin v2.0/CBlockChain.cs | 0 .../Client_ViggiCoin v2.0/CIO.cs | 0 .../Client_ViggiCoin v2.0/CPeer.cs | 0 .../Client_ViggiCoin v2.0/CPeers.cs | 0 .../Client_ViggiCoin v2.0/CServer.cs | 0 .../Client_ViggiCoin v2.0/CTemporaryBlock.cs | 0 .../Client_ViggiCoin v2.0.csproj | 0 .../Client_ViggiCoin v2.0/ECommand.cs | 0 .../Client_ViggiCoin v2.0/ERequest.cs | 0 .../Client_ViggiCoin v2.0/Program.cs | 0 .../Properties/AssemblyInfo.cs | 0 .../Client_ViggiCoin v2.0/RSA.cs | 0 .../bin/Debug/Client_ViggiCoin v2.0.exe | Bin .../bin/Debug/Client_ViggiCoin v2.0.exe.config | 0 .../bin/Debug/Client_ViggiCoin v2.0.pdb | Bin .../bin/Debug/Client_ViggiCoin v2.0.vshost.exe | Bin .../Debug/Client_ViggiCoin v2.0.vshost.exe.config | 0 .../Debug/Client_ViggiCoin v2.0.vshost.exe.manifest | 0 .../Client_ViggiCoin v2.0/bin/Debug/blockchain.txt | 0 .../Client_ViggiCoin v2.0/bin/Debug/keystore.xml | 0 ...lient_ViggiCoin v2.0.csproj.FileListAbsolute.txt | 0 ...giCoin v2.0.csprojResolveAssemblyReference.cache | Bin .../obj/Debug/Client_ViggiCoin v2.0.exe | Bin .../obj/Debug/Client_ViggiCoin v2.0.pdb | Bin .../DesignTimeResolveAssemblyReferencesInput.cache | Bin ...atedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs | 0 ...atedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs | 0 ...atedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs | 0 34 files changed, 0 insertions(+), 0 deletions(-) rename {Client_ViggiCoin v2.0 => Blockchain/Client_ViggiCoin v2.0}/.vs/Client_ViggiCoin v2.0/v14/.suo (100%) rename {Client_ViggiCoin v2.0 => Blockchain/Client_ViggiCoin v2.0}/Client_ViggiCoin v2.0.sln (100%) rename {Client_ViggiCoin v2.0 => Blockchain/Client_ViggiCoin v2.0}/Client_ViggiCoin v2.0.v11.suo (100%) rename {Client_ViggiCoin v2.0 => Blockchain/Client_ViggiCoin v2.0}/Client_ViggiCoin v2.0/App.config (100%) rename {Client_ViggiCoin v2.0 => Blockchain/Client_ViggiCoin v2.0}/Client_ViggiCoin v2.0/ArgumentWrapper.cs (100%) rename {Client_ViggiCoin v2.0 => Blockchain/Client_ViggiCoin v2.0}/Client_ViggiCoin v2.0/CBlock.cs (100%) rename {Client_ViggiCoin v2.0 => Blockchain/Client_ViggiCoin v2.0}/Client_ViggiCoin v2.0/CBlockChain.cs (100%) rename {Client_ViggiCoin v2.0 => Blockchain/Client_ViggiCoin v2.0}/Client_ViggiCoin v2.0/CIO.cs (100%) rename {Client_ViggiCoin v2.0 => Blockchain/Client_ViggiCoin v2.0}/Client_ViggiCoin v2.0/CPeer.cs (100%) rename {Client_ViggiCoin v2.0 => Blockchain/Client_ViggiCoin v2.0}/Client_ViggiCoin v2.0/CPeers.cs (100%) rename {Client_ViggiCoin v2.0 => Blockchain/Client_ViggiCoin v2.0}/Client_ViggiCoin v2.0/CServer.cs (100%) rename {Client_ViggiCoin v2.0 => Blockchain/Client_ViggiCoin v2.0}/Client_ViggiCoin v2.0/CTemporaryBlock.cs (100%) rename {Client_ViggiCoin v2.0 => Blockchain/Client_ViggiCoin v2.0}/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0.csproj (100%) rename {Client_ViggiCoin v2.0 => Blockchain/Client_ViggiCoin v2.0}/Client_ViggiCoin v2.0/ECommand.cs (100%) rename {Client_ViggiCoin v2.0 => Blockchain/Client_ViggiCoin v2.0}/Client_ViggiCoin v2.0/ERequest.cs (100%) rename {Client_ViggiCoin v2.0 => Blockchain/Client_ViggiCoin v2.0}/Client_ViggiCoin v2.0/Program.cs (100%) rename {Client_ViggiCoin v2.0 => Blockchain/Client_ViggiCoin v2.0}/Client_ViggiCoin v2.0/Properties/AssemblyInfo.cs (100%) rename {Client_ViggiCoin v2.0 => Blockchain/Client_ViggiCoin v2.0}/Client_ViggiCoin v2.0/RSA.cs (100%) rename {Client_ViggiCoin v2.0 => Blockchain/Client_ViggiCoin v2.0}/Client_ViggiCoin v2.0/bin/Debug/Client_ViggiCoin v2.0.exe (100%) rename {Client_ViggiCoin v2.0 => Blockchain/Client_ViggiCoin v2.0}/Client_ViggiCoin v2.0/bin/Debug/Client_ViggiCoin v2.0.exe.config (100%) rename {Client_ViggiCoin v2.0 => Blockchain/Client_ViggiCoin v2.0}/Client_ViggiCoin v2.0/bin/Debug/Client_ViggiCoin v2.0.pdb (100%) rename {Client_ViggiCoin v2.0 => Blockchain/Client_ViggiCoin v2.0}/Client_ViggiCoin v2.0/bin/Debug/Client_ViggiCoin v2.0.vshost.exe (100%) rename {Client_ViggiCoin v2.0 => Blockchain/Client_ViggiCoin v2.0}/Client_ViggiCoin v2.0/bin/Debug/Client_ViggiCoin v2.0.vshost.exe.config (100%) rename {Client_ViggiCoin v2.0 => Blockchain/Client_ViggiCoin v2.0}/Client_ViggiCoin v2.0/bin/Debug/Client_ViggiCoin v2.0.vshost.exe.manifest (100%) rename {Client_ViggiCoin v2.0 => Blockchain/Client_ViggiCoin v2.0}/Client_ViggiCoin v2.0/bin/Debug/blockchain.txt (100%) rename {Client_ViggiCoin v2.0 => Blockchain/Client_ViggiCoin v2.0}/Client_ViggiCoin v2.0/bin/Debug/keystore.xml (100%) rename {Client_ViggiCoin v2.0 => Blockchain/Client_ViggiCoin v2.0}/Client_ViggiCoin v2.0/obj/Debug/Client_ViggiCoin v2.0.csproj.FileListAbsolute.txt (100%) rename {Client_ViggiCoin v2.0 => Blockchain/Client_ViggiCoin v2.0}/Client_ViggiCoin v2.0/obj/Debug/Client_ViggiCoin v2.0.csprojResolveAssemblyReference.cache (100%) rename {Client_ViggiCoin v2.0 => Blockchain/Client_ViggiCoin v2.0}/Client_ViggiCoin v2.0/obj/Debug/Client_ViggiCoin v2.0.exe (100%) rename {Client_ViggiCoin v2.0 => Blockchain/Client_ViggiCoin v2.0}/Client_ViggiCoin v2.0/obj/Debug/Client_ViggiCoin v2.0.pdb (100%) rename {Client_ViggiCoin v2.0 => Blockchain/Client_ViggiCoin v2.0}/Client_ViggiCoin v2.0/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache (100%) rename {Client_ViggiCoin v2.0 => Blockchain/Client_ViggiCoin v2.0}/Client_ViggiCoin v2.0/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs (100%) rename {Client_ViggiCoin v2.0 => Blockchain/Client_ViggiCoin v2.0}/Client_ViggiCoin v2.0/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs (100%) rename {Client_ViggiCoin v2.0 => Blockchain/Client_ViggiCoin v2.0}/Client_ViggiCoin v2.0/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs (100%) diff --git a/Client_ViggiCoin v2.0/.vs/Client_ViggiCoin v2.0/v14/.suo b/Blockchain/Client_ViggiCoin v2.0/.vs/Client_ViggiCoin v2.0/v14/.suo similarity index 100% rename from Client_ViggiCoin v2.0/.vs/Client_ViggiCoin v2.0/v14/.suo rename to Blockchain/Client_ViggiCoin v2.0/.vs/Client_ViggiCoin v2.0/v14/.suo diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0.sln b/Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0.sln similarity index 100% rename from Client_ViggiCoin v2.0/Client_ViggiCoin v2.0.sln rename to Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0.sln diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0.v11.suo b/Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0.v11.suo similarity index 100% rename from Client_ViggiCoin v2.0/Client_ViggiCoin v2.0.v11.suo rename to Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0.v11.suo diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/App.config b/Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/App.config similarity index 100% rename from Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/App.config rename to Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/App.config diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/ArgumentWrapper.cs b/Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/ArgumentWrapper.cs similarity index 100% rename from Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/ArgumentWrapper.cs rename to Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/ArgumentWrapper.cs diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CBlock.cs b/Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CBlock.cs similarity index 100% rename from Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CBlock.cs rename to Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CBlock.cs diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CBlockChain.cs b/Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CBlockChain.cs similarity index 100% rename from Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CBlockChain.cs rename to Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CBlockChain.cs diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CIO.cs b/Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CIO.cs similarity index 100% rename from Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CIO.cs rename to Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CIO.cs diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CPeer.cs b/Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CPeer.cs similarity index 100% rename from Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CPeer.cs rename to Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CPeer.cs diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CPeers.cs b/Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CPeers.cs similarity index 100% rename from Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CPeers.cs rename to Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CPeers.cs diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CServer.cs b/Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CServer.cs similarity index 100% rename from Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CServer.cs rename to Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CServer.cs diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CTemporaryBlock.cs b/Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CTemporaryBlock.cs similarity index 100% rename from Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CTemporaryBlock.cs rename to Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/CTemporaryBlock.cs diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0.csproj b/Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0.csproj similarity index 100% rename from Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0.csproj rename to Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0.csproj diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/ECommand.cs b/Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/ECommand.cs similarity index 100% rename from Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/ECommand.cs rename to Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/ECommand.cs diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/ERequest.cs b/Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/ERequest.cs similarity index 100% rename from Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/ERequest.cs rename to Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/ERequest.cs diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/Program.cs b/Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/Program.cs similarity index 100% rename from Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/Program.cs rename to Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/Program.cs diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/Properties/AssemblyInfo.cs b/Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/Properties/AssemblyInfo.cs similarity index 100% rename from Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/Properties/AssemblyInfo.cs rename to Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/Properties/AssemblyInfo.cs diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/RSA.cs b/Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/RSA.cs similarity index 100% rename from Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/RSA.cs rename to Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/RSA.cs diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/bin/Debug/Client_ViggiCoin v2.0.exe b/Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/bin/Debug/Client_ViggiCoin v2.0.exe similarity index 100% rename from Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/bin/Debug/Client_ViggiCoin v2.0.exe rename to Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/bin/Debug/Client_ViggiCoin v2.0.exe diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/bin/Debug/Client_ViggiCoin v2.0.exe.config b/Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/bin/Debug/Client_ViggiCoin v2.0.exe.config similarity index 100% rename from Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/bin/Debug/Client_ViggiCoin v2.0.exe.config rename to Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/bin/Debug/Client_ViggiCoin v2.0.exe.config diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/bin/Debug/Client_ViggiCoin v2.0.pdb b/Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/bin/Debug/Client_ViggiCoin v2.0.pdb similarity index 100% rename from Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/bin/Debug/Client_ViggiCoin v2.0.pdb rename to Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/bin/Debug/Client_ViggiCoin v2.0.pdb diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/bin/Debug/Client_ViggiCoin v2.0.vshost.exe b/Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/bin/Debug/Client_ViggiCoin v2.0.vshost.exe similarity index 100% rename from Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/bin/Debug/Client_ViggiCoin v2.0.vshost.exe rename to Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/bin/Debug/Client_ViggiCoin v2.0.vshost.exe diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/bin/Debug/Client_ViggiCoin v2.0.vshost.exe.config b/Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/bin/Debug/Client_ViggiCoin v2.0.vshost.exe.config similarity index 100% rename from Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/bin/Debug/Client_ViggiCoin v2.0.vshost.exe.config rename to Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/bin/Debug/Client_ViggiCoin v2.0.vshost.exe.config diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/bin/Debug/Client_ViggiCoin v2.0.vshost.exe.manifest b/Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/bin/Debug/Client_ViggiCoin v2.0.vshost.exe.manifest similarity index 100% rename from Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/bin/Debug/Client_ViggiCoin v2.0.vshost.exe.manifest rename to Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/bin/Debug/Client_ViggiCoin v2.0.vshost.exe.manifest diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/bin/Debug/blockchain.txt b/Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/bin/Debug/blockchain.txt similarity index 100% rename from Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/bin/Debug/blockchain.txt rename to Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/bin/Debug/blockchain.txt diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/bin/Debug/keystore.xml b/Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/bin/Debug/keystore.xml similarity index 100% rename from Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/bin/Debug/keystore.xml rename to Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/bin/Debug/keystore.xml diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/obj/Debug/Client_ViggiCoin v2.0.csproj.FileListAbsolute.txt b/Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/obj/Debug/Client_ViggiCoin v2.0.csproj.FileListAbsolute.txt similarity index 100% rename from Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/obj/Debug/Client_ViggiCoin v2.0.csproj.FileListAbsolute.txt rename to Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/obj/Debug/Client_ViggiCoin v2.0.csproj.FileListAbsolute.txt diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/obj/Debug/Client_ViggiCoin v2.0.csprojResolveAssemblyReference.cache b/Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/obj/Debug/Client_ViggiCoin v2.0.csprojResolveAssemblyReference.cache similarity index 100% rename from Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/obj/Debug/Client_ViggiCoin v2.0.csprojResolveAssemblyReference.cache rename to Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/obj/Debug/Client_ViggiCoin v2.0.csprojResolveAssemblyReference.cache diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/obj/Debug/Client_ViggiCoin v2.0.exe b/Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/obj/Debug/Client_ViggiCoin v2.0.exe similarity index 100% rename from Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/obj/Debug/Client_ViggiCoin v2.0.exe rename to Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/obj/Debug/Client_ViggiCoin v2.0.exe diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/obj/Debug/Client_ViggiCoin v2.0.pdb b/Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/obj/Debug/Client_ViggiCoin v2.0.pdb similarity index 100% rename from Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/obj/Debug/Client_ViggiCoin v2.0.pdb rename to Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/obj/Debug/Client_ViggiCoin v2.0.pdb diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache similarity index 100% rename from Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache rename to Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs similarity index 100% rename from Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs rename to Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs similarity index 100% rename from Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs rename to Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs diff --git a/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs similarity index 100% rename from Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs rename to Blockchain/Client_ViggiCoin v2.0/Client_ViggiCoin v2.0/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs