npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@coinversable/validana-server

v2.2.0

Published

The Validana server for handling client requests.

Downloads

3

Readme

This is the semi-annual release channel for Validana. For the latest version contact us via [email protected].

About Validana.io

Validana is a high performance decentralized data storage and processing environment for governments, educational institutes and businesses based on blockchain technology. Our permissioned approach allows the speed and flexibility of traditional systems whilst enabling organizations and individuals to independently verify transactions and processes. Validana is 100% open-source and released under the AGPLv3 license.

Validana is already in use in many business to business blockchain applications and has been under active development since early 2017 by the Dutch company Coinversable. After a lot of testing and tweaking all Validana source code was fully open-sourced in June 2018.

Please visit https://validana.io for more information.

For commercial support, licensing options or any inquiries about what Validana can do for your business please contact us directly via [email protected].

How it works

Validana was developed specifically for business to business, educational and government applications where a trusted context exists but the need for transparency and verifiability arises.

Validana can best be compared to a permissioned blockchain with a single miner which we call the validana-processor. When you configure a Validana environment you can choose who you want to allow to participate as validana-node, from the entire world to just a select group of individuals. Nodes connect to each other and obtain a full copy of the transaction history to independently verify all transactions and the transaction logic within the network. Each transaction is securely signed at their origin by the validana-client. The client locally signs the transaction and communicates the payload to the validana-server over a secure WebSocket or REST connection. The server sends the signed payload to the processor, which in turn will execute the corresponding Smart Contracts and either accept or reject the transaction. The server will listen for transaction status changes and notify the client on success or failure. By default the processor will process all pending transactions every 5 seconds. Each action the processor takes can be independently verified by the nodes. Validana's hybrid blockchain approach allows for very fast block creation and validation, processing hundreds of transactions within 5 second block-time without energy consuming consensus algorithms.

All Validana packages and smart contracts are entirely written in Typescript / JavaScript which makes code re-use a key feature of Validana. The validana-core package for instance contains common code between the node and the processor. Validana makes extensive use of technologies which are well known in the web development community such as Typescript, Promises, Node.js, REST and WebSockets. Validana is easy to understand and easy to implement for developers with experience related to web development.

Validana Server (This Package)

If you want to setup your own Validana Blockchain, see the wiki. If you want to help with the development of the Validana Server or extend it with a custom API see below.

Setup Development environment

  1. Install Node.js (https://nodejs.org/en/download/)
  2. Install yarn (https://yarnpkg.com/en/docs/install)

Setup Validana Server

  1. Make sure the development environment is setup.
  2. Clone the project with git.
  3. Navigate to project root.
  4. Run yarn install
  5. (Optional) Run yarn link so it can be linked to other packages.

Build Validana Server

  1. Make sure the project is setup.
  2. Navigate to project root.
  3. Run yarn build

Start Validana Server

  1. Make sure the project is build.
  2. Navigate to project root.
  3. Run yarn start path/to/config.json (Alternately use environment variables instead of a config file.)

Extending the Validana Server

  1. Add as dependency in package.json: "@coinversable/validana-server": "^2.1.0"
  2. Create a request handler that extends 'RequestHandler' (or 'addBasics(RequestHandler)' ).
  3. In the main entrypoint of your app add:
import { Log, start } from "validana-server";
import { MyRequestHandler } from "...";
Log.options.tags.version = "1.0.0"; //The version of your application if you want to use sentry
start(new Map().set("v1", new MyRequestHandler()));
  1. You can now run it using node <path/to/entrypoint.js> <path/to/config.json>