GithubHelp home page GithubHelp logo

Comments (6)

igormcoelho avatar igormcoelho commented on August 15, 2024 2

That's true @ThomasLobker ... if specific images are created and properly named, they could be invoked and kept on disk (as docker creates incremental images, only the build output will remain). We are currently working in a full separation of consensus nodes in our network, which will be the basis of neo-tests project. After that, releasing this new testing part will be quick and easy.

from neocompiler-eco.

igormcoelho avatar igormcoelho commented on August 15, 2024 1

@ThomasLobker sorry for the delay, the idea is still on the table.. just time is short :)
I just thought this project will fit fine in another project we have, called neo-tests. The idea I have now is:

  • you chose the language and pass the exact commit number or tag;
  • the compiler is build on-the-fly with the desired configuration (may take a few minutes);
  • the compiling process is made;
  • everything is dropped.

The difference from our neocompiler.io project is that we must provide only a few pre-built options, in order to the viable to maintain them all on disk (because the purpose is to compile quickly). But if you just want to test a legacy version, it's ok to wait a few minutes. Do you agree?

from neocompiler-eco.

ThomasLobker avatar ThomasLobker commented on August 15, 2024 1

@igormcoelho completely agreed. I think once you've built a compiler we can keep it on disk for future usage, so only the first time that it's selected it will take a couple of minutes. Disk space is cheap, so that should be no problem, but I can always help out with that.

Once we have this, we can use it to audit projects and verify the script hash, even if the projects don't want to open source their contract.

from neocompiler-eco.

vncoelho avatar vncoelho commented on August 15, 2024 1

Closed through 77db351.

image

Thanks, @ThomasLobker for this insight.
The current implementation still needs more features, anyway, it was almost fully accomplished. 🗡️

from neocompiler-eco.

igormcoelho avatar igormcoelho commented on August 15, 2024

Hi Thomas, I liked a lot your idea. This can mean some extra overhead for our servers, but, who cares anyway :D it's for a good cause hahahah
We should first achieve some versioning convention for all compiling tools, because as you may have noticed, tools in Neo ecosystem don't usually have tags or unique names...
So, my first approach for naming could be X_Y_Z_A_B:

  • language name (csharp)
  • main maintainer name (neo)
  • compiler release date (29052018) ddmmyyyy
  • compiler tag, commit or partial commit (b18eb645)
  • system os (ubuntu1710)
  • dependencies (mono14......) This part should be quite free, the more explanation the better :)

So, we could theoretically provide a docker image like: neo-compiler:csharp_neo_29052018_b18eb645_ubuntu1710_mono14
And PROBABLY we could reproduce that in a near future :)

In fact, I believe compiler should come with a compiler.json specification, and smart contracts should return an informative string (we can propose a NEP for it!), so everybody will know how this contract was compiled.

compiler.json could be:

{
    "language" : "csharp",
    "maintainer" : "neo",
    "release_date" : "29-05-2018",
    "tag" : "b18eb645",
    "system" : "ubuntu1710",
    "dependencies": [
      {
         "mono" : "14"
      }
    ]
}

Perhaps I'm overcomplicating things, but in my opinion, if you want anything to be reproducible in this crazy environment, this could be a direction. Opinions???

from neocompiler-eco.

ThomasLobker avatar ThomasLobker commented on August 15, 2024

@igormcoelho thank you so much for this insight. The JSON definition that holds all environmental parameters would be absolutely briliant. We would still need some relevant data on the smart contract level as well, something that points to where to find the source code (and where to find the compiler.json as well).

It can be part of the dApp NEP proposal in my opinion:
neo-project/proposals#46

from neocompiler-eco.

Related Issues (20)

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.