{"id":15035401,"url":"https://github.com/wavesplatform/waves","last_synced_at":"2025-05-14T07:08:27.736Z","repository":{"id":37458260,"uuid":"56426975","full_name":"wavesplatform/Waves","owner":"wavesplatform","description":"⛓️ Reference Waves Blockchain Node (client) implementation on Scala","archived":false,"fork":false,"pushed_at":"2025-05-07T10:23:44.000Z","size":59367,"stargazers_count":1172,"open_issues_count":32,"forks_count":423,"subscribers_count":182,"default_branch":"version-1.5.x","last_synced_at":"2025-05-09T04:33:51.200Z","etag":null,"topics":["blockchain","cryptography","decentralized-applications","smart-contracts"],"latest_commit_sha":null,"homepage":"https://wavesplatform.com/","language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wavesplatform.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2016-04-17T08:38:48.000Z","updated_at":"2025-04-22T10:35:49.000Z","dependencies_parsed_at":"2024-02-21T07:30:32.795Z","dependency_job_id":"ef0cb020-3639-4ab0-b0ac-47bac524e245","html_url":"https://github.com/wavesplatform/Waves","commit_stats":{"total_commits":10222,"total_committers":90,"mean_commits":"113.57777777777778","dds":0.8419096067305811,"last_synced_commit":"7b3bb0e10d8b95941fba6ff2defd1c7f528aee04"},"previous_names":[],"tags_count":178,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wavesplatform%2FWaves","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wavesplatform%2FWaves/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wavesplatform%2FWaves/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wavesplatform%2FWaves/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wavesplatform","download_url":"https://codeload.github.com/wavesplatform/Waves/tar.gz/refs/heads/version-1.5.x","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254092775,"owners_count":22013290,"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","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","cryptography","decentralized-applications","smart-contracts"],"created_at":"2024-09-24T20:28:34.747Z","updated_at":"2025-05-14T07:08:27.716Z","avatar_url":"https://github.com/wavesplatform.png","language":"Scala","readme":"\u003ch1 align=\"center\"\u003e🔷 Waves Node\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/wavesplatform/Waves/actions\" target=\"_blank\"\u003e\n    \u003cimg alt=\"Checks status\" src=\"https://badgen.net/github/checks/wavesplatform/waves?cache=600\"  /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/wavesplatform/Waves/releases\" target=\"_blank\"\u003e\n    \u003cimg alt=\"Downloads\" src=\"https://badgen.net/github/assets-dl/wavesplatform/waves?color=blue\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://hub.docker.com/r/wavesplatform/wavesnode\" target=\"_blank\"\u003e\n    \u003cimg alt=\"Docker pulls\" src=\"https://badgen.net/docker/pulls/wavesplatform/wavesnode?icon=docker\" /\u003e\n  \u003c/a\u003e\n\n  \u003cbr/\u003e\n\n  \u003ca href=\"https://twitter.com/wavesprotocol\" target=\"_blank\"\u003e\n    \u003cimg alt=\"Twitter: Waves Tech\" src=\"https://badgen.net/twitter/follow/wavesprotocol?icon=twitter\u0026label=follow%20on%20Twitter\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://medium.com/wavesprotocol\" target=\"_blank\"\u003e\n    \u003cimg alt=\"Medium: Waves Tech\" src=\"https://badgen.net/runkit/msmolyakov/get-medium-followers?icon=medium\u0026cache=86400\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://t.me/waves_ride_dapps_dev\" target=\"_blank\"\u003e\n    \u003cimg alt=\"Telegram\" src=\"https://badgen.net/badge/icon/Waves%20Dev%20Jedi?icon=telegram\u0026label=Telegram\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/msmolyakov/awesome-waves\" target=\"_blank\"\u003e\n    \u003cimg alt=\"Awesome Waves\" src=\"https://badgen.net/badge/icon/Awesome%20Waves?icon=awesome\u0026label\u0026color=pink\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003e Waves is an open source [blockchain protocol](https://waves.tech). \u003cbr/\u003e \nYou can use it to build your own decentralized applications. Waves provides full blockchain ecosystem including smart contracts language called RIDE.\n\n\n## ✨ Demo\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://user-images.githubusercontent.com/1945126/78667964-88209480-78e2-11ea-9304-72178a6a5974.gif\" alt=\"Waves Node Run Demo\"\u003e\n\u003c/p\u003e\n\nWaves node is a host connected to the blockchain network with the following functions:\n\n- Processing and validation of [transactions](https://docs.waves.tech/en/blockchain/transaction/transaction-validation)\n- Generation and storage of [blocks](https://docs.waves.tech/en/blockchain/block/)\n- Network communication with [other nodes](https://docs.waves.tech/en/blockchain/blockchain/#node)\n- [REST API](https://docs.waves.tech/en/waves-node/node-api/)\n- [Extensions](https://docs.waves.tech/en/waves-node/extensions/) management\n\nLearn more about Waves Node in the [documentation](https://docs.waves.tech/en/waves-node/).\n\n## 🚀️ Getting started\n\nA quick introduction of the minimal setup you need to get a running node. \n\n*Prerequisites:*\n- configuration file for a needed network from [here](https://github.com/wavesplatform/Waves/tree/HEAD/node)\n- `waves-all*.jar` file from [releases](https://github.com/wavesplatform/Waves/releases) \n\nLinux systems:\n```bash\nsudo apt-get update\nsudo apt-get install openjdk-11-jre\njava -jar node/target/waves-all*.jar path/to/config/waves-{network}.conf\n```\n\nMac systems (assuming already installed homebrew):\n```bash\nbrew cask install adoptopenjdk/openjdk/adoptopenjdk11\njava -jar node/target/waves-all*.jar path/to/config/waves-{network}.conf\n```\n\nWindows systems (assuming already installed OpenJDK 11):\n```bash\njava -jar node/target/waves-all*.jar path/to/config/waves-{network}.conf\n```\n\nUsing docker, follow the [official image documentation](https://hub.docker.com/r/wavesplatform/wavesnode).\n\n\u003e More details on how to install a node for different platforms you can [find in the documentation](https://docs.waves.tech/en/waves-node/how-to-install-a-node/how-to-install-a-node). \n\n## 🔧 Configuration\n\nThe best starting point to understand available configuration parameters is [this article](https://docs.waves.tech/en/waves-node/node-configuration).\n\nThe easiest way to start playing around with configurations is to use default configuration files for different networks; they're available in [network-defaults.conf](./node/src/main/resources/network-defaults.conf).\n\nLogging configuration with all available levels and parameters is described [here](https://docs.waves.tech/en/waves-node/logging-configuration).\n\n## 👨‍💻 Development\n\nThe node can be built and installed wherever Java can run. \nTo build and test this project, you will have to follow these steps:\n\n\u003cdetails\u003e\u003csummary\u003e\u003cb\u003eShow instructions\u003c/b\u003e\u003c/summary\u003e\n\n*1. Setup the environment.*\n- Install Java for your platform:\n\n```bash\nsudo apt-get update\nsudo apt-get install openjdk-11-jre                     # Ubuntu\n# or\n# brew cask install adoptopenjdk/openjdk/adoptopenjdk11 # Mac\n```\n\n- Install SBT (Scala Build Tool)\n\nPlease follow the SBT installation instructions depending on your platform ([Linux](https://www.scala-sbt.org/1.0/docs/Installing-sbt-on-Linux.html), [Mac](https://www.scala-sbt.org/1.0/docs/Installing-sbt-on-Mac.html), [Windows](https://www.scala-sbt.org/1.0/docs/Installing-sbt-on-Windows.html))\n\n*2. Clone this repo*\n\n```bash\ngit clone https://github.com/wavesplatform/Waves.git\ncd Waves\n```\n\n*3. Compile and run tests*\n\n```bash\nsbt checkPR\n```\n\n*4. Run integration tests (optional)*\n\nCreate a Docker image before you run any test: \n```bash\nsbt node-it/docker\n```\n\n- Run all tests. You can increase or decrease number of parallel running tests by changing `waves.it.max-parallel-suites`\nsystem property:\n```bash\nsbt -Dwaves.it.max-parallel-suites=1 node-it/test\n```\n\n- Run one test:\n```bash\nsbt node-it/testOnly *.TestClassName\n# or \n# bash node-it/testOnly full.package.TestClassName\n```\n\n*5. Build packages* \n\n```bash\nsbt packageAll                   # Mainnet\nsbt -Dnetwork=testnet packageAll # Testnet\n```\n\n`sbt packageAll` ‌produces only `deb` package along with a fat `jar`. \n\n*6. Install DEB package*\n\n`deb` package is located in target folder. You can replace '*' with actual package name:\n\n```bash\nsudo dpkg -i node/target/*.deb\n```\n\n\n*7. Run an extension project locally during development (optional)*\n\n```bash\nsbt \"extension-module/run /path/to/configuration\"\n```\n\n*8. Configure IntelliJ IDEA (optional)*\n\nThe majority of contributors to this project use IntelliJ IDEA for development, if you want to use it as well please follow these steps:\n\n1. Click `Add configuration` (or `Edit configurations...`).\n2. Click `+` to add a new configuration, choose `Application`.\n3. Specify:\n   - Main class: `com.wavesplatform.Application`\n   - Program arguments: `/path/to/configuration`\n   - Use classpath of module: `extension-module`\n4. Click `OK`.\n5. Run this configuration.\n\n\u003c/details\u003e\n\n## 🤝 Contributing\n\nIf you'd like to contribute, please fork the repository and use a feature branch. Pull requests are warmly welcome.\n\nFor major changes, please open an issue first to discuss what you would like to change. Please make sure to update tests as appropriate.\n\nPlease follow the [code of conduct](./CODE_OF_CONDUCT.md) during communication with each other. \n\n## ℹ️ Support (get help)\n\nKeep up with the latest news and articles, and find out all about events happening on the [Waves Protocol](https://waves.tech/).\n\n- [Telegram Dev Chat](https://t.me/waves_ride_dapps_dev)\n- [Waves Blog](https://medium.com/wavesprotocol)\n\n## ⛓ Links\n\n- [Documentation](https://docs.waves.tech/)\n- Blockchain clients for Mainnet: [Waves Exchange](https://waves.exchange/), [Waves FX](https://github.com/wavesfx), [SIGN app](https://www.sign-web.app/)\n- Blockchain clients for Testnet: [Waves Exchange](https://testnet.waves.exchange/)\n- Blockchain Explorer: [Mainnet](https://wavesexplorer.com/), [Testnet](https://testnet.wavesexplorer.com/), [Stagenet](https://stagenet.wavesexplorer.com/) \n- [Ride Online IDE](https://waves-ide.com/)\n\n## 📝 Licence\n\nThe code in this project is licensed under [MIT license](./LICENSE)\n\n## 👏 Acknowledgements\n\n[\u003cimg src=\"https://www.yourkit.com/images/yklogo.png\"\u003e](https://www.yourkit.com)\n\nWe use YourKit full-featured Java Profiler to make Waves node faster. YourKit, LLC is the creator of innovative and intelligent tools for profiling Java and .NET applications.\n\nTake a look at YourKit's leading software products: YourKit Java Profiler and YourKit .NET Profiler.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwavesplatform%2Fwaves","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwavesplatform%2Fwaves","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwavesplatform%2Fwaves/lists"}