hyperledger-fabrichyperledger-fabric-sdk-go

Getting error " not enough arguments in call to s.statsd.SendLoop" when running "go build" command


I'm trying to run go build command for my project but it exits with below error.

alpha@GHOST-RIDER:~/GoWorkspace/src/github.com/hyperledger/firstproject$ go build
# github.com/hyperledger/fabric-sdk-go/internal/github.com/hyperledger/fabric/core/operations
../fabric-sdk-go/internal/github.com/hyperledger/fabric/core/operations/system.go:227:23: not enough arguments in call to s.statsd.SendLoop
    have (<-chan time.Time, string, string)
    want (context.Context, <-chan time.Time, string, string)

Any help would be appreciated.


Solution

  • As per code fabric is using the different version of this library: github.com/go-kit/kit/metrics/statsd. If you follow the System struct's statsd attribute, you can reach the reference on imports.

    In master branch of this lib, SendLoop function requires 4 attributes, so that's the root cause. So this causes error when you compile on your local environment.

    I had the same issue and worked around it by checking out a tag of library as below:

    cd $GOPATH/src/github.com/go-kit/kit
    git fetch --tags
    git checkout v0.8.0