Git Product home page Git Product logo

blockchain-k-plugin's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

blockchain-k-plugin's Issues

Issue with formatting when building downstream with KEVM

When calling make in KEVM now, I get an error with formatting in this repo:

poetry install
Installing dependencies from lock file
Warning: poetry.lock is not consistent with pyproject.toml. You may be getting improper dependencies. Run `poetry lock [--no-update]` to fix it.

No dependencies to install or update

Installing the current project: kevm-pyk (1.0.529)
poetry run flake8 src
poetry run mypy src
Success: no issues found in 29 source files
poetry run autoflake --quiet --check src
poetry run isort --check src
ERROR: /home/dev/src/evm-semantics/kevm-pyk/src/kevm_pyk/kproj/plugin/tests/test.py Imports are incorrectly sorted and/or formatted.
make: *** [Makefile:89: check-isort] Error 1

I guess that we need to:

  • Enable codestyle checks on CI here for the python code.

Upgrade path for this plugin

There are several changes that need to be made to facilitate (i) modularity of the KEVM build, and (ii) hooks needed by the Michelson Semantics.

Here is the proposed upgrade path:

  1. add some new hash functions that Michelson needs
  • add a libcrypto++ submodule so that we can still do test builds in this repo --- because the libcrypto++ package in Ubuntu/Debian doesn't include the needed symbols
  • add the hash functions blake2 and sha2-512
  1. upstream the KEVM hooks/build recipes
  • add all KEVM hooks to the plugin
  • hide the Michelson hooks that depend on a more recent version of libcrypto++ behind a tangle tag
  • make KEVM source the plugin hook file and delete its internal copy of the hook file
  • upstream the KEVM build recipes for its crypto submodules and directly call the plugin Makefile build recipes
  1. split out the hooks in build plugin file into separate modules based on which library they use
  • update the plugin hook files and build test (also update plugin hook names, refer to runtimeverification/k#1216)
  • update KEVM so that it sources the new files correctly

libcrypto++ package on Ubuntu/Debian is missing symbols

See all bug reports here: https://bugs.launchpad.net/ubuntu/+source/libcrypto++/

In particular, the bug that affects us is: https://bugs.launchpad.net/ubuntu/+source/libcrypto++/+bug/1876166

This seems like a similar bug: https://bugs.launchpad.net/ubuntu/+source/libcrypto++/+bug/660171

This affects us because we want to use some of the missing symbols as crypto hooks. This forces us to have a more complex build/package process for any semantics that uses those hooks.

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.