{"id":21347047,"url":"https://github.com/yann39/eth-hash-app","last_synced_at":"2026-04-09T16:08:30.041Z","repository":{"id":222380171,"uuid":"757122022","full_name":"Yann39/eth-hash-app","owner":"Yann39","description":"Document hash storing on Ethereum blockchain from Java","archived":false,"fork":false,"pushed_at":"2024-03-17T15:48:55.000Z","size":310,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-03T06:37:40.216Z","etag":null,"topics":["blockchain","bootstrap","ethereum","java","spring-boot","web3js","zk","zkoss"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Yann39.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-13T21:07:29.000Z","updated_at":"2024-02-18T10:48:35.000Z","dependencies_parsed_at":"2024-11-22T02:12:36.586Z","dependency_job_id":"b00d3007-8896-475c-9f7e-0b66581fcde8","html_url":"https://github.com/Yann39/eth-hash-app","commit_stats":null,"previous_names":["yann39/eth-hash-app"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Yann39/eth-hash-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yann39%2Feth-hash-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yann39%2Feth-hash-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yann39%2Feth-hash-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yann39%2Feth-hash-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Yann39","download_url":"https://codeload.github.com/Yann39/eth-hash-app/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yann39%2Feth-hash-app/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273403950,"owners_count":25099299,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-03T02:00:09.631Z","response_time":76,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain","bootstrap","ethereum","java","spring-boot","web3js","zk","zkoss"],"created_at":"2024-11-22T02:12:27.967Z","updated_at":"2026-04-09T16:08:29.977Z","avatar_url":"https://github.com/Yann39.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"doc/logo-ethereum.svg\" width=\"380\" alt=\"Ethereum logo\"\u003e\n\n# Document hashes on Ethereum blockchain from Java\n\nStoring and reading document hashes on the **Ethereum blockchain** from **Java**.\n\n![Version](https://img.shields.io/badge/Version-1.0.2-2AAB92.svg)\n![Static Badge](https://img.shields.io/badge/Last_update-05_May_2022-blue)\n\n![Version](https://img.shields.io/badge/JDK-17-red.svg)\n![Version](https://img.shields.io/badge/Spring%20Boot-2.5.12-green.svg)\n![Version](https://img.shields.io/badge/ZK-9.6.0-blue.svg)\n![Version](https://img.shields.io/badge/Bootstrap-5.1.3-purple.svg)\n![Version](https://img.shields.io/badge/Web3j-5.0.0-yellow.svg)\n\n---\n\n# Table of Contents\n\n* [About the Project](#about-the-project)\n* [Getting Started](#getting-started)\n  * [Prerequisites](#prerequisites)\n  * [Installation](#installation)\n* [Usage](#usage)\n* [License](#license)\n\n# About the Project\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\n        \u003cimg alt=\"Java logo\" src=\"doc/logo-java.svg\" height=\"72\"/\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n        \u003cimg alt=\"Spring logo\" src=\"doc/logo-spring.svg\" height=\"36\"/\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n        \u003cimg alt=\"H2 logo\" src=\"doc/logo-web3js.svg\" height=\"58\"/\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n        \u003cimg alt=\"ZK logo\" src=\"doc/logo-zk.svg\" height=\"96\"/\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n        \u003cimg alt=\"Bootstrap logo\" src=\"doc/logo-bootstrap.svg\" height=\"56\"/\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n        \u003cimg alt=\"H2 logo\" src=\"doc/logo-h2.svg\" height=\"64\"/\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\nThis project demonstrate **document hash** storing on the **Ethereum blockchain** from **Java**.\n\nThis is a **Java Spring Boot** application with a **ZK** frontend, that use an embedded **H2** database for demonstration purpose.\n\n# Getting Started\n\n## Prerequisites\n\nTo run this project in a local environment, you need :\n- A local Ethereum blockchain running on `localhost` on port `7545`\n- A `Diploma` smart contract deployed to handle document hash read and write\n\nSee the [eth-hash-chain](https://github.com/Yann39/eth-hash-chain) project for setting up a local blockchain with all the required capabilities.\n\n## Installation\n\n1. Clone the repository :\n    ```shell script\n    git clone https://github.com/Yann39/eth-hash-app\n    ```\n2. Replace `application.account-address` and `application.contract-address` values in _application.properties_\n   to match your account and smart contract addresses according to your running blockchain\n3. Build the JAR file using **Maven** :\n   ```shell script\n   mvn package\n   ```\n4. Start your local blockchain (Ganache)\n5. Execute application from Intellij or run the JAR file, with the right profile :\n   ```shell script\n   java -Dspring.profiles.active=local -jar /target/eth-hash-app.jar\n   ```\n6. Reach \u003chttp://localhost:8080/\u003e\n\n# Usage\n\nSimply reach the application home page at \u003chttp://localhost:8080/\u003e to display the home page.\n\nNavigate to the **Documents** menu, or direct access : \u003chttp://localhost:8080/diplomas\u003e\n\nConnect to the Ethereum network (you should see a \"connected\" message) :\n\n\u003cimg src=\"doc/screen-app1.png\" alt=\"Application main page\"\u003e\n\nThen simply add documents and try to save hashes to the Ethereum blockchain.\n\nYou can then view documents :\n\n\u003cimg src=\"doc/screen-app2.png\" alt=\"Application view document page\"\u003e\n\n# License\n\n[General Public License (GPL) v3](https://www.gnu.org/licenses/gpl-3.0.en.html)\n\nThis program is free software: you can redistribute it and/or modify it under the terms of the GNU\nGeneral Public License as published by the Free Software Foundation, either version 3 of the\nLicense, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without\neven the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\nGeneral Public License for more details.\n\nYou should have received a copy of the GNU General Public License along with this program. If not,\nsee \u003chttp://www.gnu.org/licenses/\u003e.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyann39%2Feth-hash-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyann39%2Feth-hash-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyann39%2Feth-hash-app/lists"}