Этот код является значением блока null и значением по умолчанию (0) для числовых типов
private class NullPropertiesConverter : JavaScriptConverter
{
public override object Deserialize(IDictionary<string, object> dictionary, Type type, JavaScriptSerializer serializer)
{
throw new NotImplementedException();
}
public override IDictionary<string, object> Serialize(object obj, JavaScriptSerializer serializer)
{
var jsonExample = new Dictionary<string, object>();
foreach (var prop in obj.GetType().GetProperties())
{
//this object is nullable
var nullableobj = prop.PropertyType.IsGenericType && prop.PropertyType.GetGenericTypeDefinition() == typeof(Nullable<>);
//check if decorated with ScriptIgnore attribute
bool ignoreProp = prop.IsDefined(typeof(ScriptIgnoreAttribute), true);
var value = prop.GetValue(obj, System.Reflection.BindingFlags.Public, null, null, null);
int i;
//Object is not nullable and value=0 , it is a default value for numeric types
if (!(nullableobj == false && value != null && (int.TryParse(value.ToString(), out i) ? i : 1) == 0) && value != null && !ignoreProp)
jsonExample.Add(prop.Name, value);
}
return jsonExample;
}
public override IEnumerable<Type> SupportedTypes
{
get { return GetType().Assembly.GetTypes(); }
}
}
@dwp, в соответствии с вашим томом монтирует ваш исходный каталог на вашем компьютере ("./crypto-config"), который был подключен к вашему контейнеру ("/opt/gopath/src/github.com/hyperledger/fabric/peer/ крипто / ") ...
И ошибка говорит (давайте возьмем первый) ==> Папка промежуточных сертификатов не найдена в /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/Policedepartment.trafficfine.com/users /Admin@Policedepartment.trafficfine.com/msp/intermediatecerts
означает, что каталога нет "./crypto-config/peerOrganizations/Policedepartment.trafficfine.com/users/Admin@Policedepartment.trafficfine.com/msp/ intermediatecerts»..
Поэтому попробуйте изменить источник и цели монтирования тома в соответствии с вашими файлами крипто-конфигурации.
Чтобы отладить больше в использовании контейнера cli,
docker exec -it cli bash
blockquote> blockquote>
Вы сгенерировали новый криптографический материал? Попробуйте это:
Docker-контейнер exec -it cli bash
blockquote>И найдите каталог crypto, ошибка говорит о том, что файлы вашего крипто-материала не найдены в вашем контейнере, и вам это нужно для совершения транзакций по сети.