Sign inSign up

yggdrash/yggdrash-node

By yggdrash

•Updated over 7 years ago

YGGDRASH Node Docker Image

Image
1

1.5K

yggdrash/yggdrash-node repository overview

⁠logo Yggdrash

We will change the world by blockchain.

Build Status Coverage Status codecov Join the chat at https://gitter.im/yggdrash/yggdrash

⁠What is yggdrash?

YGGDRASH is a trust-based multi-dimensional blockchains (branches) built with a vision to “Digitize everything into reality” and to connect everything and any blockchain networks.

⁠Table of contents

⁠Documentation

Learn more by reading the yggdrash technical document⁠ and full documentation, visit wiki⁠

⁠Development

This is the implementation written in Java and runs on Linux, OSX and Windows.

⁠Requirements

Yggdrash requires JAVA 1.8+ compiler to build. To install Java, follow this link⁠.

Open JDK or Oracle JDK 1.8 to 11 are supported.

⁠Getting the source

Clone the yggdrash repo:

git clone https://github.com/yggdrash/yggdrash.git
cd yggdrash

If you are unfamiliar with Git, Download ZIP⁠ (source code)

⁠Running locally

To run the cloned repository in the spring default profile, simply run:

./gradlew

To run the multiple nodes in IntelliJ IDE, edit the run configuration:

config

⁠Running on Docker

You can fully dockerize the yggdrash node. For more information refer to docker⁠.

Docker is one quick way for running an yggdrash node:

docker run --rm -p 8080:8080 -v $HOME/.yggdrash:/.yggdrash yggdrash/yggdrash-node

Yggdrash node binds to localhost using 8080 for the RESTful API & JSON RPC, and 32918 for the gRPC by default.

You can also use other ports by providing options like -p 8081:8080

The Dockerfile⁠ is designed to build automatically the last release of the source code and will publish docker images to dockerhub⁠ by release, feel free to fork and build Dockerfile for your own purpose.

⁠Building for production

To optimize the yggdrash application for production, run:

./gradlew -PspringProfiles=prod clean build

To ensure everything worked, run:

yggdrash-node/build/libs/*.jar

To find out usages of all command line options:

  • --spring.profiles.active=value Environment property to specify which profiles are active (default: default, docker default: prod-production mode)
  • --server.address=value JSON RPC & RESTful API services listening address (default: localhost)
  • --server.port=value JSON RPC & RESTful API services listening port (default: 8080)
  • --yggdrash.node.grpc.host=value gRPC service listening address (default: localhost)
  • --yggdrash.node.grpc.port=value gRPC service listening port (default: 32918)
  • --yggdrash.node.max-peers=value maximum number of P2P network peers (default: 25)
  • --yggdrash.branch.default.active=true|false activate default branches or not (default: true)
⁠Running Tests

To launch yggdrash's tests, run:

./gradlew test

This command would run the integration tests without gradle task caching:

./gradlew test -PspringProfiles=ci --rerun-tasks

⁠APIs

Once yggdrash node started, the blocks can be shown in your browser. e.g. http://localhost:8080/blocks⁠

⁠Using Docker to simplify development (optional)

You can use docker to improve yggdrash development experience. A number of docker-compose configuration are available in the docker⁠ folder to launch with third party services.

For example, to start the multiple nodes in a docker container, run:

docker-compose -f docker/docker-compose.yml up -d

To stop it and remove the container, run:

docker-compose -f docker/docker-compose.yml down

⁠Continuous Integration & Continuous Delivery (optional)

Yggdrash should support the following CI systems out of the box:

  • Jenkins: Setting up Jenkins
docker-compose -f docker/jenkins.yml up -d
⁠To configure CI for Yggdrash project in Jenkins, use the following configuration:
* Project name: `Yggdrash`
* Source Code Management
    * Git Repository: `[email protected]:yggdrash/yggdrash.git`
    * Branches to build: `*/master`
    * Additional Behaviours: `Wipe out repository & force clone`
* Build Triggers
    * Poll SCM / Schedule: `H/5 * * * *`
* Build
    * Invoke Gradle script / Use Gradle Wrapper / Tasks: `-PspringProfiles=prod clean build`
    * Execute Shell / Command:
        ````
        ./gradlew bootRun &
        bootPid=$!
        sleep 30s
        kill $bootPid
        ````
* Post-build Actions
    * Publish JUnit test result report / Test Report XMLs: `build/test-results/*.xml`

What tasks/integrations in the Jenkins pipeline file⁠ :

  • Perform the build in a Docker container
  • Analyze code with Sonar
  • Build and publish a Docker image

⁠Stay in Touch

Follow @yggdrash⁠, @YggdrashNews⁠ and releases are announced via our Yggdrash Official⁠ on SNS also. Its team members on Yggdrash Website⁠

⁠License

The Yggdrash is released under version 2.0 of the Apache License⁠.

Tag summary

Content type

Image

Digest

Size

86.1 MB

Last updated

over 7 years ago

docker pull yggdrash/yggdrash-node