所以我试图部署一个新的bna文件进行测试。 更重要的是,我可以测试其余的界面来创建参与者,我创建的调用代码比其他任何东西都要多 - javascript事务处理文件在这个时刻几乎是空的。
.cto文件有几种不同的参与者类型和一堆资产类型,它们形成一种树结构来表示数据。
尝试启动本地休息服务器会出现以下错误。
从业务网络定义中发现类型...已发现 来自业务网络定义的类型为所有人生成模式 业务网络定义中的类型...异常:RangeError: 超出最大调用堆栈大小RangeError:最大调用堆栈大小 突破 在LoopbackVisitor.visitClassDeclarationCommon(/usr/local/lib/node_modules/composer-rest-server/node_modules/composer-common/lib/codegen/fromcto/loopback/loopbackvisitor.js:352:23) 在LoopbackVisitor.visitAssetDeclaration(/usr/local/lib/node_modules/composer-rest-server/node_modules/composer-common/lib/codegen/fromcto/loopback/loopbackvisitor.js:187:21) 在LoopbackVisitor.visit(/usr/local/lib/node_modules/composer-rest-server/node_modules/composer-common/lib/codegen/fromcto/loopback/loopbackvisitor.js:74:25) 在AssetDeclaration.accept(/usr/local/lib/node_modules/composer-rest-server/node_modules/composer-common/lib/introspect/classdeclaration.js:64:24) 在LoopbackVisitor.visitField(/usr/local/lib/node_modules/composer-rest-server/node_modules/composer-common/lib/codegen/fromcto/loopback/loopbackvisitor.js:494:18) 在LoopbackVisitor.visit(/usr/local/lib/node_modules/composer-rest-server/node_modules/composer-common/lib/codegen/fromcto/loopback/loopbackvisitor.js:86:25) 在Field.accept(/usr/local/lib/node_modules/composer-rest-server/node_modules/composer-common/lib/introspect/property.js:48:24) at classDeclaration.getProperties.forEach(/usr/local/lib/node_modules/composer-rest-server/node_modules/composer-common/lib/codegen/fromcto/loopback/loopbackvisitor.js:373:66) at Array.forEach(native) 在LoopbackVisitor.visitClassDeclarationCommon(/usr/local/lib/node_modules/composer-rest-server/node_modules/composer-common/lib/codegen/fromcto/loopback/loopbackvisitor.js:370:42) 在LoopbackVisitor.visitAssetDeclaration(/usr/local/lib/node_modules/composer-rest-server/node_modules/composer-common/lib/codegen/fromcto/loopback/loopbackvisitor.js:187:21) 在LoopbackVisitor.visit(/usr/local/lib/node_modules/composer-rest-server/node_modules/composer-common/lib/codegen/fromcto/loopback/loopbackvisitor.js:74:25) 在AssetDeclaration.accept(/usr/local/lib/node_modules/composer-rest-server/node_modules/composer-common/lib/introspect/classdeclaration.js:64:24) 在LoopbackVisitor.visitField(/usr/local/lib/node_modules/composer-rest-server/node_modules/composer-common/lib/codegen/fromcto/loopback/loopbackvisitor.js:494:18) 在LoopbackVisitor.visit(/usr/local/lib/node_modules/composer-rest-server/node_modules/composer-common/lib/codegen/fromcto/loopback/loopbackvisitor.js:86:25) 在Field.accept(/usr/local/lib/node_modules/composer-rest-server/node_modules/composer-common/lib/introspect/property.js:48:24) at classDeclaration.getProperties.forEach(/usr/local/lib/node_modules/composer-rest-server/node_modules/composer-common/lib/codegen/fromcto/loopback/loopbackvisitor.js:373:66)
谷歌的一个小小的质量时间给了我一个事实,它是一个内存不足的错误,可能是由于过度递归造成的,但之后我就陷入了困境。
同样的网络在游乐场fwiw工作得很好。
编辑: 没有.qry文件。这是基本的。 我试图看看我是否可以在REST电话中添加Par1和Par2样本。
ACL文件是基本网络样本的标准允许所有操作。
我已经擦除了.cto文件以部分模糊了源代码,但它似乎仍然重复以下内容:
/**
* Sample business network definition.
*/
namespace xx.yy.zz
asset SomeTransmission identified by orderNumber {
o String orderNumber //Some order number
--> Par2 aa
--> Par1 bb
o SomeTransmission[] messages
}
participant Par1 identified by code {
o String mmm
o String name
o String prefix
o String code
o Boolean bool1
o Boolean bool2
o Boolean bool3
}
participant SomeSss identified by sss {
o String sss
o String mmm
--> Par1 bb
--> Par1 rep2
}
participant Par2 identified by id {
o String id
o String name
o String address
}
transaction UpdateOrderTransaction {
o String orderId
--> Par2 aa
--> Par1 bb
o SomeTransmission transmission
}
event UpdateOrderEvent {
--> SomeTransmission transmission
}
asset Some identified by uuid {
o String uuid //Unique identifier
}
asset AgencyOrder extends Some {
o AXZHDR agyhdr
o AXZDS1 agyds1
o AXZDS2 agyds2
o AXZDS3 agyds3
o AXZDS4 agyds4
o AXZSTD[] agystds
o AXZCOM[] agycoms
o AXZHIA[] agyhias
o BxblineTransmission[] bxblines
o AXZTLR agytlr
}
asset SomeRecord identified by uuid {
o String uuid
o String id
o Long orderNumber //Some order number
}
asset SomeModifier extends SomeRecord {
o Par2 tpar2
o Par1 tpar1
o String dt
o String sss
o String cn
o String rts
}
asset SomePreviousSssModifier extends SomeModifier {
o String previousSssCallLetters
}
asset SomeMultiple extends SomeRecord {
o String continuation
}
asset SomeComment extends SomeMultiple {
o String comment
}
asset AXZHDR extends SomePreviousSssModifier {
o String version //Some version number
o String routingCode
o String mdaCode
o String clientCode
o String prxOneCode
o String prxTwoCode
o String estimateNumber
o String startDate
o String endDate
o String cashOrTrade
o String scheduleType
o String scheduleStartDate
o Long billWeekStartDay
o String originalOrderNumber
o Long revisionNumber
}
asset AXZDS1 extends SomeRecord {
o String axyName
o String axyAddress
}
asset AXZDS2 extends SomeRecord {
o String clientName
o String estimateDescription
o String targetDmxx
o String[] extraDmxxs
}
asset AXZDS3 extends SomeRecord {
o String prxOneName
o String prxTwoName
}
asset AXZDS4 extends SomeRecord {
o String bxberCode
o String bxberName
o Long bxberTelephone
o String bxberExtension
}
asset AXZSTD extends SomeComment {
}
asset AXZCOM extends SomeComment {
}
asset AXZHIA extends SomeMultiple {
o String[] dates
}
asset AXZTLR extends SomeRecord {
o Long numberOfRecords
o Long totalOrderedSpx
o Long totalOrderedDollars
}
//Bxb record details
asset BxblineTransmission identified by uuid{
o String uuid
o BXBHDR bxbhdr
o BXBDEM bxbdem
o BXBORB[] bxborbs
o BXBCOM[] bxbcoms
o BXBDTL[] bxbdtls
}
asset SomeBxbRecord extends SomeRecord {
o Long sequenceNumber
o String sbx
o Long sbxStartDay
o Long startTime
o Long endTime
o Long totalspxyLength
o String lengthInUnits
o Long cost
o String costQualifier
o Long prxOneTimeShare
o String pppName
o String scheduleType
}
asset BXBHDR extends SomeBxbRecord {
o Long makegoodForBxbline
}
asset BXBDEM extends SomeRecord {
o Long[] demos
}
asset BXBORB extends SomeMultiple {
o String sbx
o Long sbxStartDay
o Long startTime
o Long endTime
o String pppName
}
asset BXBCOM extends SomeComment {
}
asset BXBDTL extends SomeMultiple {
o Long cost
o String startDate
o Long numberOfWeeks
o Long spxPerWeek
}
答案 0 :(得分:0)
问题是:
asset SomeTransmission identified by orderNumber {
o String orderNumber //Some order number
--> Par2 aa
--> Par1 bb
o SomeTransmission[] messages
}
SomeTransmission[] messages
导致代码递归,试图在SomeTransmission
类已经处于内省过程中时对其进行内省。
想要拥有包含自己资产类型数组的资产似乎并不常见。你想要实现什么,也许还有另一种建模方法?
我已创建问题https://github.com/hyperledger/composer/issues/2193来解决此问题。