From 17e9862a1fc8b75634a4ae6005ba0f67935536b2 Mon Sep 17 00:00:00 2001 From: corentinstd <corentinstd@gmail.com> Date: Tue, 30 Jan 2024 14:16:34 +0100 Subject: [PATCH] modif --- pom.xml | 5 +- src/main/java/fr/miage/App.java | 8 ++- src/main/java/fr/miage/Bloc.java | 33 ++++++++++ src/main/java/fr/miage/BlocHeader.java | 60 ++++++++++++++++++ src/main/java/fr/miage/Blockchain.java | 6 ++ .../java/fr/miage/EnumTypeTransaction.java | 5 ++ src/main/java/fr/miage/MinageManager.java | 36 ++++++++++- src/main/java/fr/miage/Transaction.java | 10 +++ src/main/java/fr/miage/UTxO.java | 7 ++ src/main/java/fr/miage/Wallet.java | 12 ++++ target/blockchain-project-1.0-SNAPSHOT.jar | Bin 2640 -> 7175 bytes target/classes/fr/miage/App.class | Bin 531 -> 894 bytes .../compile/default-compile/createdFiles.lst | 8 +++ .../compile/default-compile/inputFiles.lst | 8 +++ 14 files changed, 194 insertions(+), 4 deletions(-) create mode 100644 src/main/java/fr/miage/BlocHeader.java create mode 100644 src/main/java/fr/miage/EnumTypeTransaction.java diff --git a/pom.xml b/pom.xml index 8debaf1..0f1c75e 100644 --- a/pom.xml +++ b/pom.xml @@ -14,8 +14,9 @@ <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <maven.compiler.source>1.8</maven.compiler.source> - <maven.compiler.target>1.8</maven.compiler.target> + <maven.compiler.source>21</maven.compiler.source> + <maven.compiler.target>21</maven.compiler.target> + <maven.compiler.release>21</maven.compiler.release> </properties> <dependencies> diff --git a/src/main/java/fr/miage/App.java b/src/main/java/fr/miage/App.java index 71b6b24..6d01adc 100644 --- a/src/main/java/fr/miage/App.java +++ b/src/main/java/fr/miage/App.java @@ -8,6 +8,12 @@ public class App { public static void main( String[] args ) { - System.out.println( "Hello World!" ); + System.out.println("Début de la blockchain"); + // Création de la blockchain + Blockchain blockchain = new Blockchain("BloBlockchain"); + //Création de 2 wallets + Wallet bobWallet = new Wallet("publicKey1", "privateKey1"); + Wallet aliceWallet = new Wallet("publicKey2", "privateKey2"); + } } diff --git a/src/main/java/fr/miage/Bloc.java b/src/main/java/fr/miage/Bloc.java index f4cffff..2fe1256 100644 --- a/src/main/java/fr/miage/Bloc.java +++ b/src/main/java/fr/miage/Bloc.java @@ -3,5 +3,38 @@ package fr.miage; import java.util.List; public class Bloc { + private String hash; private List<Transaction> transactions; + private String header; + + + public Bloc(String hash,List<Transaction> transactions) { + this.hash = hash; + this.transactions = transactions; + } + + public String getHash() { + return hash; + } + public String getHeader() { + return header; + } + public void setHash(String hash) { + this.hash = hash; + } + public void setHeader(String header) { + this.header = header; + } + + + public Bloc(List<Transaction> transactions) { + this.transactions = transactions; + } + + public List<Transaction> getTransactions() { + return transactions; + } + public void setTransactions(List<Transaction> transactions) { + this.transactions = transactions; + } } diff --git a/src/main/java/fr/miage/BlocHeader.java b/src/main/java/fr/miage/BlocHeader.java new file mode 100644 index 0000000..0f5f02d --- /dev/null +++ b/src/main/java/fr/miage/BlocHeader.java @@ -0,0 +1,60 @@ +// package fr.miage; + +// public class BlocHeader { +// private String previousHash; +// private long time; +// private long nonce; +// private long size; +// public static final int DIFFICULTY = 27; + +// public BlocHeader(String hash, String previousHash, long time, long nonce, long size) { +// this.hash = hash; +// this.previousHash = previousHash; +// this.time = time; +// this.nonce = nonce; +// this.size = size; +// } + +// public String getHash() { +// return hash; +// } + +// public void setHash(String hash) { +// this.hash = hash; +// } + +// public String getPreviousHash() { +// return previousHash; +// } + +// public void setPreviousHash(String previousHash) { +// this.previousHash = previousHash; +// } + +// public long getTime() { +// return time; +// } + +// public void setTime(long time) { +// this.time = time; +// } + +// public long getNonce() { +// return nonce; +// } + +// public void setNonce(long nonce) { +// this.nonce = nonce; +// } + +// public long getSize() { +// return size; +// } + +// public void setSize(long size) { +// this.size = size; +// } + + + +// } diff --git a/src/main/java/fr/miage/Blockchain.java b/src/main/java/fr/miage/Blockchain.java index 651cafa..c3f5398 100644 --- a/src/main/java/fr/miage/Blockchain.java +++ b/src/main/java/fr/miage/Blockchain.java @@ -5,4 +5,10 @@ import java.util.LinkedList; public class Blockchain { private String name; private LinkedList<Bloc> blocs; + + public Blockchain(String name) { + this.name = name; + this.blocs = new LinkedList<Bloc>(); + } + } diff --git a/src/main/java/fr/miage/EnumTypeTransaction.java b/src/main/java/fr/miage/EnumTypeTransaction.java new file mode 100644 index 0000000..765fc59 --- /dev/null +++ b/src/main/java/fr/miage/EnumTypeTransaction.java @@ -0,0 +1,5 @@ +package fr.miage; + +public enum EnumTypeTransaction { + NORMAL, COINBASE; +} diff --git a/src/main/java/fr/miage/MinageManager.java b/src/main/java/fr/miage/MinageManager.java index 17cc574..ac0d414 100644 --- a/src/main/java/fr/miage/MinageManager.java +++ b/src/main/java/fr/miage/MinageManager.java @@ -1,5 +1,39 @@ package fr.miage; +import java.math.BigInteger; +import java.text.DecimalFormat; +import java.text.NumberFormat; +import java.util.Optional; +import java.util.stream.DoubleStream; + +import javax.swing.text.html.Option; + +import org.apache.commons.codec.digest.DigestUtils; + public class MinageManager { - //TODO + + private static final int DIFFICULTY = 27; + + + + public MinageManager() { + } + + + public Bloc mineABloc(Bloc previousBloc) { + double target = Math.pow(2, 256 - DIFFICULTY); + //DoubleStream doubleStream = DoubleStream.iterate(0, i -> i + 1).limit((long) Math.pow(2, DIFFICULTY)); + Compute result = new Compute(new BigInteger(DigestUtils.sha256Hex(previousBloc.getHeader() + Math.pow(2,DIFFICULTY)), 16).doubleValue(), Math.pow(2,DIFFICULTY)); + if(result.hash < target){ + System.out.println("Bloc miné avec succès : " + result.nonce); + System.out.println("Hash : " + DigestUtils.sha256Hex(previousBloc.getHeader() + result.nonce)); + Bloc bloc = new Bloc(transactions, new BlocHeader(DigestUtils.sha256Hex(previousBloc.getHeader() + result.nonce), previousBloc.getHeader(), System.currentTimeMillis(), result.nonce, transactions.size())); + } + System.out.println("Failed after " + BlocHeader.DIFFICULTY + " tries"); + return new Result("", BlocHeader.DIFFICULTY); + + } + + record Result(String hash, double nonce){} + record Compute(double hash, double nonce){} } diff --git a/src/main/java/fr/miage/Transaction.java b/src/main/java/fr/miage/Transaction.java index bd17ac2..b7ca275 100644 --- a/src/main/java/fr/miage/Transaction.java +++ b/src/main/java/fr/miage/Transaction.java @@ -6,6 +6,16 @@ public class Transaction { private String id; private List<UTxO> inputs; private List<UTxO> outputs; + //private double fees; private String signature; + private String typeTransaction; + + public Transaction(String id, List<UTxO> inputs, List<UTxO> outputs, String signature, String typeTransaction) { + this.id = id; + this.inputs = inputs; + this.outputs = outputs; + this.signature = signature; + } + //créer transaction coinbase } diff --git a/src/main/java/fr/miage/UTxO.java b/src/main/java/fr/miage/UTxO.java index 6275dfb..e52bfef 100644 --- a/src/main/java/fr/miage/UTxO.java +++ b/src/main/java/fr/miage/UTxO.java @@ -5,4 +5,11 @@ public class UTxO { private String hashWallet; // hash du wallet private Transaction transaction; // transaction précédente (provenance de l'argent) --> peut etre meme que le hash de la transaction private double montant; + + public UTxO(String hashWallet, Transaction transaction, double montant) { + this.hashWallet = hashWallet; + this.transaction = transaction; + this.montant = montant; + } + } diff --git a/src/main/java/fr/miage/Wallet.java b/src/main/java/fr/miage/Wallet.java index 7f02c73..49d390c 100644 --- a/src/main/java/fr/miage/Wallet.java +++ b/src/main/java/fr/miage/Wallet.java @@ -1,5 +1,8 @@ package fr.miage; +import java.nio.charset.StandardCharsets; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; import java.util.List; public class Wallet { @@ -13,5 +16,14 @@ public class Wallet { this.publicKey = publicKey; this.privateKey = privateKey; } + + public void initWallet(byte[] data) throws NoSuchAlgorithmException{ + + } + + private String hashSha256(String privateKey) throws NoSuchAlgorithmException{ + MessageDigest md = MessageDigest.getInstance("SHA-256"); + byte[] hash = md.digest(privateKey.getBytes(StandardCharsets.UTF_8)); + } } diff --git a/target/blockchain-project-1.0-SNAPSHOT.jar b/target/blockchain-project-1.0-SNAPSHOT.jar index 7de4d656a0ec888f2265e9e8c7a4b85fc456a088..f988b3b41a7cb272d887a9a6c7dcaa36582b7f2b 100644 GIT binary patch literal 7175 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𝔦QLvL`AmwO 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 delta 1512 zcmZp-xFEtC;LXg!#lXSA!4TMNFp+l-Gl*KFq7v9_5W#>1m>C!t(u(vU${9Eqz{<a< zfRs;`X4C@H9*o9dx{lGU9;Cm6Rh2i0k%2*&iGe`~qCYn?F+Ek^v7kUNIVZ8WI5*JS zn<-G_-@5g$dnV6Xw%0p4vpY?Ai$N2|qN4$giQQr0d;P+nDPA{xk$!d20$2M5@}hHR zw(#ufF1EP;Q?B6M_3y{k8<J&acqpEoxN(AO-$ENP|3lwg9^9%o|GQDfg=c55=!zFT zig&ZV^E^o`m?6fs;orsG=P!HwI>ME%vdZ$LTkE&AVUAaNw}{lK_bWA*s@m%3+-bih zZRR^=<Eg-n0Y{~rOFO$7{U4p=KC$hoj*1)0?zv_Ci~Y7K=l=HEamjAJkA#u<!vLcx zGNLD5&%8hVm){p#CoMk<f%-WA4AJw&2Ew+hG@UO-n!FTv$L+fD>$St1Vs3H2owROO z%Grdn!!zYhc#En(Ir%|DZDFU>U7I@14L@FmT+iIJ()iWQ!{r;Mr|fk!o!%fbJ7jG< z)3y!1cMtHDJ%2R$NY94w52sE^d)2e0O$uAkzgf(O=S|{#D`(|IvwDUAZ+4CjHKd@2 z#2F}x{hJLUE*|}u_MeG?ft8zq!Dw<1qu%5Y4$b;26K+g=`{nWe`EM;$TlturZ$;O9 z-_3vj{ku6oDng%RFnSeh_Wg3Ud7&)evn(dX{crsB<rf|QTfF@GDClH#0$b#c3+{h+ z8a`E2WQ}b&uw_XOU&N}On7E#kc5)Wxa+NzS)ilTHO|RJbym0Zs1dqI9&%>{6SRg2V zE8yUQ`_3n#Wa_i@?WXrg&A-0+;f4DG+H<cRI`Mde?RQ~mRlO9hpYMM?>b!n5#rs<E z3ZIj!Y`iDWJjA+O^2m~j7P_Hr=QWJKS)5hfom_m%Rm4kl^0ZqEou>*%KY8)$`S;VS z<;AZXMs7LG8Fj!fJno^u`$Zgc=iTk`pWxcTBVc~QBjs5G(~o91@A?^8c?_--x33JD zw?(5tRQHsO!DLsTIp^B9T~oc$;%GfP>cO3dnMXg1WJhYUsV_7Yx-V&1DHObWrR2tq zUh|r{B%+zK_eO8Md?sLO<IPO5kav7bYB|+C7P3sd)t0A{dvh1x)ufxhbe3G0xR+sr z?kd|gN1ro4F}o~RbN<_h)vwp`)}N2_z7=UR`+BbGj!L8X4HZiLwKg(#Ck|zqZf5o7 z$;ghWe}5wX^`4b$pYM4&b<e3C62Xb?OBfP`?k`{0AE-5*>1x$o9jUib)AUsQ1DEEm zUa)bo$WnvFp?N01A}*NDV$yoT6x6P}a#LKOX1D*smC=c%#e9zs7A;_UTEmu;yWhTE znfJl>=6hQeM9y%mp7L2<jCC^CiDNO3cWQq6e(&XzJrlQWy78n?|Hd=5ic-EsQaig> z=x+M<;X~m0D|>8sp61JNUElXvH*{Opo4%-$vLCC2Sk_;h!fk$jp}=&zMo;BAXO_&m zkuceJ!}RHHj<&ycRadfATv=-~cLnF_CDlKg*S#sJ=UlJt%@BUU^bbeB+mDYr`>pn+ zzPA^>XaBqM-rq;@_l$PMX6}qB=dZh9x<lIY|G#}7`HJlRr?Oi9e&<tPeOiv&o@?62 znOi=`d8Njgyp27!*3#VG;K{|+PvSRy$jhyZn{-belr50cJ|b5HHXBUl;XT01$Rxrn z0xJq9vy0n<3$u;l(vwrfCBf_laXm1-QQQPfzYw<q)2b5AU^-hOECE}=2P;RHH11*q z7o%v!V1PHmZj3w%)6BrYu%yw4d2%nK?&L?3!e9$6rKFiwvw?*?c=^Nvyjj^m%DEW0 N7>+P8FqE-_cmP|%d58c2 diff --git a/target/classes/fr/miage/App.class b/target/classes/fr/miage/App.class index 2d323d3bb26f550b630926e29147fce43ff6dd00..e101c779abed4e7b739e1fa70d480be8175b415c 100644 GIT binary patch literal 894 zcmX^0Z`VEs1_nn4D|QAZMh2d=BK_RV#Pn2s$ASWO1{OvJfvm)`ME#t^ymWp4q^#8B z5=I6#o6Nk-5<5l)W)00SMg|t={FGEK24)6M9tKthHbw@1pUk{eztY^K)S{5Yq?}Yn z1|gsP<iwn?#G*_PA1cUFl95@=$iU}=Y^OCN150jVW*#Ghm`1b@!tUUbqRhN>Yt1lD z20;d4b_O97mjzcAm!#(MFo-aSGBPmdmzFRxh(a`H=IaL(W#*LxmlUNY=2~+wh%+*X zyBuDbR9d2tlB$rCsF0MCpPZeXk(ims#URNb&CVdj$RG^17*#J1gA9W#BLjN@$he$5 zMg~z0h!x<lfxC~LL7tI8815w}xak}Wii`}rPC5AqAua|v24zs7$+9!3GBWVPb%iJ9 z<fN8xFsL&!a21p$<zyy%r&bzrFlaI|a2FJ1mL-;?f&{o2R2Z~D`gIr?)Umk62kZ@0 z_i-@jAscGM!C-)5s1YLrOJY%aF(ZR8mhfj};6j8KD3IY!M)=B_k%2QQKMCRoMg~Dd z{6d7R85y_}b25`tAzVfVuHgLAqU2P!Oi)tca4aa$1G$?)k%5tcnE?ct7#Kk*i-D1W zoq>TtpMjBqk%57MRcku~$3_MQ1||kB1_lN;upm1FHv<C$517r$z{9}Hz`(%Cz{kK3 z)!fX$!ob47z@WW}K|n}s8-v7d2DwNfh3yPVKD!xIB8Ak1G`2Hn`GVQHLi*bowEPfO zh%vA-Ffed4a4_&P2r=+8$T0{oXfX(Zt<-`T%V5Z0#K6EH#30FF%wWR6$RNkS%V5f2 Y#=yj&#lXm5&S1vC%)rQC0d}?}0F&R!9{>OV delta 357 zcmeyzHkn2I)W2Q(7#J8#7?ijem>8JZ8CZB2SQ*$R$}1^wGH@_(vNLe;FmN;QFfs^a zC6*=X=OpH(>jzgBm!#%Syr^Kz$H>6rk(!f}uMnPJl#`;!#UQ{S$j%_d!ywEc!pI;D z){~j9A5fH;R}x%Ol$w}3S)WlwT#S){C#^_7H#0FkRo}6ofRTa4IX@+JVo-cNBLhof zQF<{WgK)GDSUbeZlA_GKbZbTiuHgLAqU2P!%$!t41`fx90zHr-21N!@1||j&U}9hd z`GA3uL7ahsL7#z<fsuiMfmLfe1LH;p1_mYu2?hoRHn1Q&gCqk30}q(Z${@uc&A`Cm z$H^eWAPd!P&Hyrvfq`=q1G^CKHU@r#383I&VBlupVBkSAg_A*!L7stufssK0Y?mSc DOCCBa diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst index a6e1610..be281bf 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -1 +1,9 @@ +fr/miage/Transaction.class +fr/miage/Bloc.class +fr/miage/UTxO.class fr/miage/App.class +fr/miage/Blockchain.class +fr/miage/EnumTypeTransaction.class +fr/miage/MinageManager.class +fr/miage/Wallet.class +fr/miage/BlocHeader.class diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index b3b66de..1ddb5f3 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -1 +1,9 @@ +/Users/corentinstd/Library/CloudStorage/OneDrive-Personnel/Cours/M2_S1/Blockchain/blockchain-project/src/main/java/fr/miage/EnumTypeTransaction.java +/Users/corentinstd/Library/CloudStorage/OneDrive-Personnel/Cours/M2_S1/Blockchain/blockchain-project/src/main/java/fr/miage/Bloc.java +/Users/corentinstd/Library/CloudStorage/OneDrive-Personnel/Cours/M2_S1/Blockchain/blockchain-project/src/main/java/fr/miage/Blockchain.java /Users/corentinstd/Library/CloudStorage/OneDrive-Personnel/Cours/M2_S1/Blockchain/blockchain-project/src/main/java/fr/miage/App.java +/Users/corentinstd/Library/CloudStorage/OneDrive-Personnel/Cours/M2_S1/Blockchain/blockchain-project/src/main/java/fr/miage/MinageManager.java +/Users/corentinstd/Library/CloudStorage/OneDrive-Personnel/Cours/M2_S1/Blockchain/blockchain-project/src/main/java/fr/miage/Transaction.java +/Users/corentinstd/Library/CloudStorage/OneDrive-Personnel/Cours/M2_S1/Blockchain/blockchain-project/src/main/java/fr/miage/Wallet.java +/Users/corentinstd/Library/CloudStorage/OneDrive-Personnel/Cours/M2_S1/Blockchain/blockchain-project/src/main/java/fr/miage/BlocHeader.java +/Users/corentinstd/Library/CloudStorage/OneDrive-Personnel/Cours/M2_S1/Blockchain/blockchain-project/src/main/java/fr/miage/UTxO.java -- GitLab