Giter VIP home page Giter VIP logo

ledgerproject / safepkt Goto Github PK

View Code? Open in Web Editor NEW
0.0 3.0 1.0 1.33 MB

Research paper On The Termination of Borrow Checking for Rust and a web application, CLI application and VSCode extension for running static analysis of rust-based smart contracts with a ready-to-be-verified project example.

Home Page: https://ledgerproject.github.io/home/#/teams/SafePKT

License: Apache License 2.0

Makefile 45.84% Shell 54.16%
rust static-analysis klee ink substrate vscode-extension cli llvm nuxtjs research

safepkt's Introduction

SafePKT

This project is implemented in the context of the European NGI LEDGER program.

This prototype aims at bringing more automation
to the field of software verification tools targeting rust-based smart contracts.

See SafePKT description

Table of contents

Demo

An online demo of a rust-based smart contract verification is available from

Rust-based smart contract analysis and verification is also available to developers and researchers by installing VS Code and SafePKT Verifier extension from VS Code Marketplace.

Preview

As of today, SafePKT offers an opportunity for

Such program must be minimalist as we're in a prototyping phase i.e.
it should consist in a single-file program (lib.rs) without dependencies
other than rvt verification-annotations,
as there are some concerns remaining to be covered like:

  • the security aspects coming along with the compilation and execution of arbitrary source code
  • the compatibility of such programs with the underlying verification tools
  • the compatibility of KLEE, the symbolic execution engine with such programs dependencies
  • the compatibility of KLEE with the latest LLVM intrinsics, which could be leveraged for compiling such programs

Some screenshots of the successive steps execution can be found

Learn more about the latest version of the minimal viable product

Install

In a nutshell, the installation steps consist in

  • Cloning this repository and its submodules
git clone --recursive github.com:LedgerProject/safepkt
cd safepkt
  • Installing the requirements
  • Installing the project dependencies

Provided the following requirements are already available:

  • git,
  • docker,
  • rust (with cargo) and
  • node.js (with npm) you should be able to install the project by running the next command
make install

Contribute

In order to be able to contribute to the project, you might need to follow the installation steps
after having considered opening an issue to start a discussion
regards contributions to the project.

Running the project in a local environment is described by the development section.

In the best-case scenario, a local environment can be built by running

make contribution

Acknowledgment

We're very grateful towards all members of the NGI-Ledger Consortium for accompanying us
Blumorpho Dyne
FundingBox NGI LEDGER
European Commission

License

This project is distributed under either the MIT license or the Apache License.

safepkt's People

Contributors

thierrymarianne avatar

Watchers

 avatar  avatar  avatar

Forkers

thierrymarianne

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.