이 자습서에서는 노드가 상대방에게 볼트를 쿼리하고 필요한 결과를 제공하도록 요청할 수 있다고 언급했습니다. 흐름에서이 논리를 통합하는 데 사용할 수있는 API가 있습니까? 또한 당사 상대방에게 상대방으로부터 정보를 수집하고 누적 결과를 반환하도록 요청하는 것이 가능합니다. 있는 경우 예제 코드를 공유하십시오. 감사.Corda : 네트워크의 다른 당사자로부터 입력 수집
0
A
답변
1
특수 API가 없습니다. 표준 FlowSession.send
/FlowSession.receive
/FlowSession.sendAndReceive
전화 만 사용하면됩니다. 상대방으로부터 데이터를 수신시 그러나
, (일반적으로 SignedTransaction
또는 StateAndRef
중 하나), 당신은 당신이이 거래의 올바른 순서를 작성 확인할 수 있도록 ResolveTransactionsFlow
를 사용하여 의존성 체인을 해결해야합니다.
SendTransactionFlow
/ReceiveTransactionFlow
쌍이있어 트랜잭션 수신, 언 래핑 및 종속성 해결 과정을 자동화합니다.
@InitiatingFlow
@StartableByRPC
class Initiator(private val counterparty: Party) :
FlowLogic<StateAndRef<ContractState>>() {
@Suspendable
override fun call(): StateAndRef<ContractState> {
val counterpartySession = initiateFlow(counterparty)
// Our flow will suspend and wait for a StateAndRef from the counterparty.
val untrustedData = counterpartySession.receive<StateAndRef<ContractState>>()
// Data received off the wire is considered untrustworthy, and must be unwrapped.
val stateAndRef = untrustedData.unwrap { stateAndRef ->
// We resolve the chain of transactions that generated this StateAndRef.
subFlow(ResolveTransactionsFlow(setOf(stateAndRef.ref.txhash), counterpartySession))
// TODO: More checking of what we've received.
stateAndRef
}
return stateAndRef
}
}
@InitiatedBy(Initiator::class)
class Responder(val counterpartySession: FlowSession) : FlowLogic<Unit>() {
@Suspendable
override fun call() {
// We extract the first StateAndRef in our vault...
val stateAndRef = serviceHub.vaultService.queryBy(ContractState::class.java).states.first()
// ...and send it to our counterparty.
counterpartySession.send(stateAndRef)
}
}
: 여기
에는 상대방에 의해 전송 된 수신 노드 A
StateAndRef<ContractState>
의 예
관련 문제
- 1. Corda : 동적으로 계약 생성
- 2. 네트워크의 지수 분포에 적합한 입력
- 3. 다른 글꼴 스타일로 사용자 입력 수집
- 4. 다른 네트워크의 SIP
- 5. 네트워크의 다른 시스템에 연결
- 6. JSON으로 입력 수집
- 7. Corda DLT for IoT
- 8. Corda 계약의 동적 규칙
- 9. 이전에 M14에서 Corda 1.0
- 10. 의존 당사자로부터 프로필 정보에 어떻게 액세스합니까?
- 11. 아이폰 네트워크의 다른 모드로 전환
- 12. 다른 신경 네트워크의 레이어 결합
- 13. 피드 포워드 뉴럴 네트워크의 변수 입력
- 14. java8 스트림 다른 목록 수집
- 15. MongoDB - 임차인마다 다른 수집
- 16. Corda : 서버에 연결할 수 없습니다.
- 17. Corda : Trader-demo - 데이터베이스 관찰
- 18. Neurolab newff 출력 범위와 네트워크의 다른 결과
- 19. Corda : 웹 UI에서 이진 스트리밍을 사용하여 Corda 노드에 pdf (파일)를 첨부 할 수 없습니다.
- 20. 네트워크의 차이점
- 21. 다른 네트워크의 데이터 피드 비교 (제휴 마케팅)
- 22. 다른 클라이언트가 네트워크의 클라이언트를 '신뢰'할 수 있습니까?
- 23. Django와 Apache : 네트워크의 다른 서버에 폴더 만들기
- 24. 다른 네트워크의 서버에 연결할 수 없음
- 25. 네트워크의 다른 서버에서 SQL SERVER 연결
- 26. 네트워크의 다른 폴더에 폴더 데이터 복사
- 27. 다른 장치에서 로컬 네트워크의 serveralias에 액세스하는 방법
- 28. 다른 네트워크의 MYSQL DB에 원격으로 자바 연결
- 29. javascript가있는 다른 네트워크의 node.js socket.io 서버에 연결