Giter Club home page Giter Club logo

go-ipld-eth's Introduction

Deprecated

Note that this repo is archived and been eclipsed by https://github.com/vulcanize/go-codec-dageth

go-ipld-eth

go-ipld-eth is the set of Ethereum elements as a part of the IPLD merkle-forest

Table of Contents

Maintainers

Captain: @hermanjunge

Install

Please check the guide at this document in the /plugin directory.

Contribute

PRs are welcome!

Small note: If editing the Readme, please conform to the standard-readme specification.

License

MIT © Jeromy Johnson

go-ipld-eth's People

Contributors

biglep avatar dryajov avatar hsanjuan avatar whyrusleeping avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

go-ipld-eth's Issues

Next steps

To get this integrated more officially into go-ipfs, we will need to first clean the code here up a little (make sure it complies with golint and vetting tools) and then make it confirm to the newer go-ipld-format plugin semantics (it needs a DecodeBlock method matching this: https://github.com/ipfs/go-ipld-format/blob/master/coding.go#L13) Then in an init function, it needs to register itself in the decoders map.

Then, any build of go-ipfs that imports this package will automatically be able to handle ethereum types.

There are also a few changes from https://github.com/ipfs/go-ipfs/compare/feat/zcash that we will need to get merged (primarily the changes to the ipfs dag put command that allows hex input).

And finally, this package doesnt implement handling for all the different ethereum object types. I only did block, transaction, and transaction trie parsing. Working on support for state trie processing will be nice.

cc @hermanjunge

Cache the CID

It's probably a good idea to cache the CID (and, if possible the output of RawData) as these methods are often called repeatedly in fast-path code.

error when install

Hi,
I have met some problem when building go-ipld-eth as a plugin. Here are the errors:

cannot use d (type "gx/ipfs/QmVSase1JP7cq9QkPT46oNwdp9pT6kBkG3oqS14y3QcZjG/go-
datastore".Batching) as type "github.com/ipfs/go-datastore".Datastore in argument to namespace.Wrap

I thought it's something about gx tools. But, i do not know how to solve it.
So, anyone can help
ThankU

error running osx.sh

Hey, there

I am new to IPLD and I ran into these errors
plugin/loader/preload.sh > plugin/loader/preload.go go fmt plugin/loader/preload.go >/dev/null go build -i -ldflags="-X "github.com/ipfs/go-ipfs/repo/config".CurrentCommit=115998d2" -o "cmd/ipfs/ipfs" "github.com/ipfs/go-ipfs/cmd/ipfs" github.com/ipfs/go-ipld-eth/plugin ../go-ipld-eth/plugin/eth.go:22: cannot use (*EthereumPlugin)(nil) (type *EthereumPlugin) as type plugin.PluginIPLD in assignment: *EthereumPlugin does not implement plugin.PluginIPLD (wrong type for RegisterBlockDecoders method) have RegisterBlockDecoders("github.com/ipfs/go-ipld-format".BlockDecoder) error want RegisterBlockDecoders("gx/ipfs/QmPN7cwmpcc4DWXb4KTB9dNAJgjuPY69h3npsMfhRrQL9c/go-ipld-format".BlockDecoder) error ../go-ipld-eth/plugin/eth.go:47: cannot use EthBlockRawInputParser (type func(io.Reader, uint64, int) ([]"github.com/ipfs/go-ipld-format".Node, error)) as type coredag.DagParser in argument to iec.AddParser ../go-ipld-eth/plugin/eth.go:48: cannot use EthBlockJSONInputParser (type func(io.Reader, uint64, int) ([]"github.com/ipfs/go-ipld-format".Node, error)) as type coredag.DagParser in argument to iec.AddParser ../go-ipld-eth/plugin/eth.go:49: cannot use EthStateTrieRawInputParser (type func(io.Reader, uint64, int) ([]"github.com/ipfs/go-ipld-format".Node, error)) as type coredag.DagParser in argument to iec.AddParser ../go-ipld-eth/plugin/eth.go:50: cannot use EthStorageTrieRawInputParser (type func(io.Reader, uint64, int) ([]"github.com/ipfs/go-ipld-format".Node, error)) as type coredag.DagParser in argument to iec.AddParser make: *** [cmd/ipfs/ipfs] Error 2
Thanks in advance and wish you a nice day ^^

install option for non-linux users

We have a way to build plugins directly into the go-ipfs binary, this would allow users of windows and macOS to use this code natively, but would require they recompile. It also requires a little bit of changes in this package. Notably, we need to separate the 'package main' plugin code from the rest of the plugin scaffolding. And would end up with the main plugin file looking like:

package main

import (
     "ipldethpluginimportpath"
)

var Plugins = ipldeth.Plugins

See https://github.com/ipfs/go-ipfs/blob/master/plugin/loader/preload_list and other code in that directory.

cc @Kubuxu to help out.

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.