Получение ошибки "недостаточно аргументов при вызове s.statsd.SendLoop" при запуске команды "go build" - PullRequest
0 голосов
/ 23 апреля 2019

Я пытаюсь запустить команду go build для моего проекта, но она завершается с ошибкой ниже.

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)

Любая помощь будет оценена.

Ответы [ 2 ]

3 голосов
/ 24 апреля 2019

Согласно фабрике кода используется другая версия этой библиотеки: github.com/go-kit/kit/metrics/statsd. Если вы будете следовать атрибуту System struct statsd, вы сможете получить ссылку на импорт.

В основной ветке этой библиотеки функция SendLoop требует атрибутов 4 , так что это основная причина. Так что это вызывает ошибку при компиляции в локальной среде.

У меня была та же проблема, и я обошел ее, проверив тег библиотеки, как показано ниже:

cd $GOPATH/src/github.com/go-kit/kit
git fetch --tags
git checkout v0.8.0
1 голос
/ 23 апреля 2019

нашел решение в групповом чате hyperledger-fabric-go-sdk.

Добавить context.Background() в s.statsd.SendLoop как показано ниже

s.statsd.SendLoop(context.Background(), s.sendTicker.C, network, address)

в fabric-sdk-go/internal/github.com/hyperledger/fabric/core/operations/system.go файле в строке 227.

...